Merge pull request #444 from hjubb/fix_group_leave_multi

fix: non-admin self-leave now handled correctly
This commit is contained in:
Niels Andriesse 2021-02-16 17:36:47 +11:00 committed by GitHub
commit 995764d8a2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

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