Merge pull request #444 from hjubb/fix_group_leave_multi

fix: non-admin self-leave now handled correctly
pull/447/head
Niels Andriesse 4 years ago committed by GitHub
commit 995764d8a2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -626,8 +626,9 @@ object ClosedGroupsProtocolV2 {
// If admin leaves the group is disbanded // If admin leaves the group is disbanded
val didAdminLeave = admins.contains(senderPublicKey) val didAdminLeave = admins.contains(senderPublicKey)
val updatedMemberList = members - senderPublicKey val updatedMemberList = members - senderPublicKey
val userLeft = userPublicKey == senderPublicKey
if (didAdminLeave) { if (didAdminLeave || userLeft) {
disableLocalGroupAndUnsubscribe(context, apiDB, groupPublicKey, groupDB, groupID, userPublicKey) disableLocalGroupAndUnsubscribe(context, apiDB, groupPublicKey, groupDB, groupID, userPublicKey)
} else { } else {
val isCurrentUserAdmin = admins.contains(userPublicKey) val isCurrentUserAdmin = admins.contains(userPublicKey)
@ -636,7 +637,8 @@ object ClosedGroupsProtocolV2 {
generateAndSendNewEncryptionKeyPair(context, groupPublicKey, updatedMemberList) generateAndSendNewEncryptionKeyPair(context, groupPublicKey, updatedMemberList)
} }
} }
if (userPublicKey == senderPublicKey) { // Notify user
if (userLeft) {
val threadID = DatabaseFactory.getLokiThreadDatabase(context).getThreadID(groupID) val threadID = DatabaseFactory.getLokiThreadDatabase(context).getThreadID(groupID)
insertOutgoingInfoMessage(context, groupID, GroupContext.Type.QUIT, name, members, admins, threadID, sentTimestamp) insertOutgoingInfoMessage(context, groupID, GroupContext.Type.QUIT, name, members, admins, threadID, sentTimestamp)
} else { } else {

Loading…
Cancel
Save