This commit is contained in:
Niels Andriesse 2021-01-14 10:18:26 +11:00
parent 672026b8bf
commit c1cba59a75
2 changed files with 13 additions and 0 deletions

View File

@ -78,6 +78,16 @@ extension Storage {
}
return result
}
public func removeReceivedMessageTimestamps(_ timestamps: Set<UInt64>, using transaction: Any) {
var receivedMessageTimestamps = getReceivedMessageTimestamps(using: transaction)
timestamps.forEach { timestamp in
guard let index = receivedMessageTimestamps.firstIndex(of: timestamp) else { return }
receivedMessageTimestamps.remove(at: index)
}
let transaction = transaction as! YapDatabaseReadWriteTransaction
transaction.setObject(receivedMessageTimestamps, forKey: "receivedMessageTimestamps", inCollection: Storage.receivedMessageTimestampsCollection)
}
public func addReceivedMessageTimestamp(_ timestamp: UInt64, using transaction: Any) {
var receivedMessageTimestamps = getReceivedMessageTimestamps(using: transaction)

View File

@ -81,10 +81,13 @@ public final class OpenGroupManager : NSObject {
pollers[openGroup.id] = nil
}
var messageIDs: Set<String> = []
var messageTimestamps: Set<UInt64> = []
thread.enumerateInteractions(with: transaction) { interaction, _ in
messageIDs.insert(interaction.uniqueId!)
messageTimestamps.insert(interaction.timestamp)
}
SNMessagingKitConfiguration.shared.storage.updateMessageIDCollectionByPruningMessagesWithIDs(messageIDs, using: transaction)
Storage.shared.removeReceivedMessageTimestamps(messageTimestamps, using: transaction)
Storage.shared.removeLastMessageServerID(for: openGroup.channel, on: openGroup.server, using: transaction)
Storage.shared.removeLastDeletionServerID(for: openGroup.channel, on: openGroup.server, using: transaction)
let _ = OpenGroupAPI.leave(openGroup.channel, on: openGroup.server)