diff --git a/SignalServiceKit/src/Contacts/Threads/TSGroupThread.m b/SignalServiceKit/src/Contacts/Threads/TSGroupThread.m index 31f7cfaeb..5cd6125be 100644 --- a/SignalServiceKit/src/Contacts/Threads/TSGroupThread.m +++ b/SignalServiceKit/src/Contacts/Threads/TSGroupThread.m @@ -227,10 +227,13 @@ NSString *const TSGroupThread_NotificationKey_UniqueId = @"TSGroupThread_Notific - (void)leaveGroupWithTransaction:(YapDatabaseReadWriteTransaction *)transaction { - NSMutableArray *newGroupMemberIds = [self.groupModel.groupMemberIds mutableCopy]; - [newGroupMemberIds removeObject:[TSAccountManager localNumber]]; - - self.groupModel.groupMemberIds = newGroupMemberIds; + NSMutableSet *newGroupMemberIds = [NSMutableSet setWithArray:self.groupModel.groupMemberIds]; + NSString *userHexEncodedPublicKey = TSAccountManager.localNumber; + if (userHexEncodedPublicKey != nil) { + NSSet *linkedDeviceHexEncodedPublicKeys = [LKDatabaseUtilities getLinkedDeviceHexEncodedPublicKeysFor:userHexEncodedPublicKey in:transaction]; + [newGroupMemberIds minusSet:linkedDeviceHexEncodedPublicKeys]; + } + self.groupModel.groupMemberIds = newGroupMemberIds.allObjects; [self saveWithTransaction:transaction]; }