mirror of
https://github.com/oxen-io/session-ios.git
synced 2023-12-13 21:30:14 +01:00
Clean
This commit is contained in:
parent
3f1358ac4d
commit
35bd22f542
|
@ -204,7 +204,7 @@ extension MessageSender {
|
|||
SNLog("Can't remove members from nonexistent closed group.")
|
||||
return Promise(error: Error.noThread)
|
||||
}
|
||||
guard !membersToRemove.isEmpty || !storage.getZombieMembers(for: groupPublicKey).isEmpty else {
|
||||
guard !membersToRemove.isEmpty else {
|
||||
SNLog("Invalid closed group update.")
|
||||
return Promise(error: Error.invalidClosedGroupUpdate)
|
||||
}
|
||||
|
@ -219,8 +219,9 @@ extension MessageSender {
|
|||
}
|
||||
let members = Set(group.groupMemberIds).subtracting(membersToRemove)
|
||||
// Update zombie list
|
||||
let zombies = storage.getZombieMembers(for: groupPublicKey).subtracting(membersToRemove)
|
||||
storage.setZombieMembers(for: groupPublicKey, to: zombies, using: transaction)
|
||||
let oldZombies = storage.getZombieMembers(for: groupPublicKey)
|
||||
let newZombies = oldZombies.subtracting(membersToRemove)
|
||||
storage.setZombieMembers(for: groupPublicKey, to: newZombies, using: transaction)
|
||||
// Send the update to the group and generate + distribute a new encryption key pair
|
||||
let closedGroupControlMessage = ClosedGroupControlMessage(kind: .membersRemoved(members: membersToRemove.map { Data(hex: $0) }))
|
||||
let promise = MessageSender.sendNonDurably(closedGroupControlMessage, in: thread, using: transaction).map {
|
||||
|
@ -229,10 +230,12 @@ extension MessageSender {
|
|||
// Update the group
|
||||
let newGroupModel = TSGroupModel(title: group.groupName, memberIds: [String](members), image: nil, groupId: groupID, groupType: .closedGroup, adminIds: group.groupAdminIds)
|
||||
thread.setGroupModel(newGroupModel, with: transaction)
|
||||
// Notify the user
|
||||
let updateInfo = group.getInfoStringAboutUpdate(to: newGroupModel)
|
||||
let infoMessage = TSInfoMessage(timestamp: NSDate.ows_millisecondTimeStamp(), in: thread, messageType: .groupUpdate, customMessage: updateInfo)
|
||||
infoMessage.save(with: transaction)
|
||||
// Notify the user if needed (not if only zombie members were removed)
|
||||
if !membersToRemove.subtracting(oldZombies).isEmpty {
|
||||
let updateInfo = group.getInfoStringAboutUpdate(to: newGroupModel)
|
||||
let infoMessage = TSInfoMessage(timestamp: NSDate.ows_millisecondTimeStamp(), in: thread, messageType: .groupUpdate, customMessage: updateInfo)
|
||||
infoMessage.save(with: transaction)
|
||||
}
|
||||
// Return
|
||||
return promise
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue