diff --git a/app/src/main/java/org/thoughtcrime/securesms/groups/OpenGroupManager.kt b/app/src/main/java/org/thoughtcrime/securesms/groups/OpenGroupManager.kt index 82ba43ab15..b61a23ce7d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/groups/OpenGroupManager.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/groups/OpenGroupManager.kt @@ -148,8 +148,12 @@ object OpenGroupManager { val standardRoles = memberDatabase.getGroupMemberRoles(groupId, standardPublicKey) val blindedRoles = blindedPublicKey?.let { memberDatabase.getGroupMemberRoles(groupId, it) } ?: emptyList() - return GroupMemberRole.ADMIN in standardRoles || GroupMemberRole.MODERATOR in standardRoles || - GroupMemberRole.ADMIN in blindedRoles || GroupMemberRole.MODERATOR in blindedRoles + // roles to check against + val moderatorRoles = listOf( + GroupMemberRole.MODERATOR, GroupMemberRole.ADMIN, + GroupMemberRole.HIDDEN_MODERATOR, GroupMemberRole.HIDDEN_ADMIN + ) + return standardRoles.any { it in moderatorRoles } || blindedRoles.any { it in moderatorRoles } } } \ No newline at end of file diff --git a/libsession/src/main/java/org/session/libsession/messaging/open_groups/GroupMember.kt b/libsession/src/main/java/org/session/libsession/messaging/open_groups/GroupMember.kt index 0559a12d5d..8335e0a2da 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/open_groups/GroupMember.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/open_groups/GroupMember.kt @@ -7,5 +7,5 @@ data class GroupMember( ) enum class GroupMemberRole { - STANDARD, ZOOMBIE, MODERATOR, ADMIN + STANDARD, ZOOMBIE, MODERATOR, ADMIN, HIDDEN_MODERATOR, HIDDEN_ADMIN } diff --git a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/pollers/OpenGroupPoller.kt b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/pollers/OpenGroupPoller.kt index ced4cbbba2..6c07450dbd 100644 --- a/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/pollers/OpenGroupPoller.kt +++ b/libsession/src/main/java/org/session/libsession/messaging/sending_receiving/pollers/OpenGroupPoller.kt @@ -136,10 +136,16 @@ class OpenGroupPoller(private val server: String, private val executorService: S pollInfo.details?.moderators?.forEach { storage.addGroupMember(GroupMember(groupId, it, GroupMemberRole.MODERATOR)) } + pollInfo.details?.hiddenModerators?.forEach { + storage.addGroupMember(GroupMember(groupId, it, GroupMemberRole.HIDDEN_MODERATOR)) + } // - Admins pollInfo.details?.admins?.forEach { storage.addGroupMember(GroupMember(groupId, it, GroupMemberRole.ADMIN)) } + pollInfo.details?.hiddenAdmins?.forEach { + storage.addGroupMember(GroupMember(groupId, it, GroupMemberRole.HIDDEN_ADMIN)) + } } private fun handleMessages(