Use mark_kicked when kicked (#857)

pull/1710/head
SessionHero01 1 year ago committed by GitHub
parent 26b58e32a4
commit 72771142ab
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -787,7 +787,8 @@ class GroupManagerV2Impl @Inject constructor(
invited = !shouldAutoApprove, invited = !shouldAutoApprove,
name = groupName, name = groupName,
destroyed = false, destroyed = false,
joinedAtSecs = 0L joinedAtSecs = 0L,
kicked = false,
) )
configFactory.withMutableUserConfigs { configFactory.withMutableUserConfigs {
@ -869,8 +870,7 @@ class GroupManagerV2Impl @Inject constructor(
configFactory.withMutableUserConfigs { configFactory.withMutableUserConfigs {
it.userGroups.set( it.userGroups.set(
group.copy( group.copy(
authData = null, kicked = true,
adminKey = null,
name = groupName name = groupName
) )
) )

@ -133,9 +133,10 @@ inline jobject serialize_closed_group_info(JNIEnv* env, session::config::group_i
jstring name = util::jstringFromOptional(env, info.name); jstring name = util::jstringFromOptional(env, info.name);
jclass group_info_class = env->FindClass("network/loki/messenger/libsession_util/util/GroupInfo$ClosedGroupInfo"); jclass group_info_class = env->FindClass("network/loki/messenger/libsession_util/util/GroupInfo$ClosedGroupInfo");
jmethodID constructor = env->GetMethodID(group_info_class, "<init>","(Lorg/session/libsignal/utilities/AccountId;[B[BJZLjava/lang/String;ZJ)V"); jmethodID constructor = env->GetMethodID(group_info_class, "<init>","(Lorg/session/libsignal/utilities/AccountId;[B[BJZLjava/lang/String;ZZJ)V");
jobject return_object = env->NewObject(group_info_class,constructor, jobject return_object = env->NewObject(group_info_class,constructor,
session_id, admin_bytes, auth_bytes, (jlong)info.priority, info.invited, name, info.is_destroyed(), info.joined_at); session_id, admin_bytes, auth_bytes, (jlong)info.priority, info.invited, name,
info.kicked(), info.is_destroyed(), info.joined_at);
return return_object; return return_object;
} }
@ -148,6 +149,7 @@ inline session::config::group_info deserialize_closed_group_info(JNIEnv* env, jo
jfieldID invited_field = env->GetFieldID(closed_group_class, "invited", "Z"); jfieldID invited_field = env->GetFieldID(closed_group_class, "invited", "Z");
jfieldID name_field = env->GetFieldID(closed_group_class, "name", "Ljava/lang/String;"); jfieldID name_field = env->GetFieldID(closed_group_class, "name", "Ljava/lang/String;");
jfieldID destroy_field = env->GetFieldID(closed_group_class, "destroyed", "Z"); jfieldID destroy_field = env->GetFieldID(closed_group_class, "destroyed", "Z");
jfieldID kicked_field = env->GetFieldID(closed_group_class, "kicked", "Z");
jfieldID joined_at_field = env->GetFieldID(closed_group_class, "joinedAtSecs", "J"); jfieldID joined_at_field = env->GetFieldID(closed_group_class, "joinedAtSecs", "J");
@ -168,6 +170,11 @@ inline session::config::group_info deserialize_closed_group_info(JNIEnv* env, jo
group_info.invited = env->GetBooleanField(info_serialized, invited_field); group_info.invited = env->GetBooleanField(info_serialized, invited_field);
group_info.name = name; group_info.name = name;
group_info.joined_at = env->GetLongField(info_serialized, joined_at_field); group_info.joined_at = env->GetLongField(info_serialized, joined_at_field);
if (env->GetBooleanField(info_serialized, kicked_field)) {
group_info.mark_kicked();
}
if (env->GetBooleanField(info_serialized, destroy_field)) { if (env->GetBooleanField(info_serialized, destroy_field)) {
group_info.mark_destroyed(); group_info.mark_destroyed();
} }

@ -13,6 +13,7 @@ sealed class GroupInfo {
val priority: Long, val priority: Long,
val invited: Boolean, val invited: Boolean,
val name: String, val name: String,
val kicked: Boolean,
val destroyed: Boolean, val destroyed: Boolean,
val joinedAtSecs: Long val joinedAtSecs: Long
): GroupInfo() { ): GroupInfo() {
@ -27,11 +28,6 @@ sealed class GroupInfo {
} }
} }
val kicked: Boolean
get() = adminKey == null && authData == null
fun hasAdminKey() = adminKey != null fun hasAdminKey() = adminKey != null
} }

Loading…
Cancel
Save