diff --git a/Session/Meta/AppDelegate.swift b/Session/Meta/AppDelegate.swift index affde2523..9e79ae3cf 100644 --- a/Session/Meta/AppDelegate.swift +++ b/Session/Meta/AppDelegate.swift @@ -521,7 +521,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD poller.stop() } - ClosedGroupPoller.shared.stop() + ClosedGroupPoller.shared.stopAllPollers() OpenGroupManager.shared.stopPolling() } diff --git a/SessionMessagingKit/Open Groups/OpenGroupManager.swift b/SessionMessagingKit/Open Groups/OpenGroupManager.swift index ea750d7cd..0c73af2cc 100644 --- a/SessionMessagingKit/Open Groups/OpenGroupManager.swift +++ b/SessionMessagingKit/Open Groups/OpenGroupManager.swift @@ -501,7 +501,7 @@ public final class OpenGroupManager: NSObject { let sortedMessages: [OpenGroupAPI.Message] = messages .filter { $0.deleted != true } .sorted { lhs, rhs in lhs.id < rhs.id } - let messageServerIdsToRemove: [Int64] = messages + var messageServerIdsToRemove: [Int64] = messages .filter { $0.deleted == true } .map { $0.id } let seqNo: Int64? = sortedMessages.map { $0.seqNo }.max() @@ -518,7 +518,11 @@ public final class OpenGroupManager: NSObject { guard let base64EncodedString: String = message.base64EncodedData, let data = Data(base64Encoded: base64EncodedString) - else { return } + else { + // FIXME: Once the SOGS Emoji Reacts update is live we should remove this line (deprecated by the `deleted` flag) + messageServerIdsToRemove.append(Int64(message.id)) + return + } do { let processedMessage: ProcessedMessage? = try Message.processReceivedOpenGroupMessage( diff --git a/SessionMessagingKit/Sending & Receiving/Pollers/ClosedGroupPoller.swift b/SessionMessagingKit/Sending & Receiving/Pollers/ClosedGroupPoller.swift index ad5c8cda5..e87643a1b 100644 --- a/SessionMessagingKit/Sending & Receiving/Pollers/ClosedGroupPoller.swift +++ b/SessionMessagingKit/Sending & Receiving/Pollers/ClosedGroupPoller.swift @@ -65,18 +65,12 @@ public final class ClosedGroupPoller { setUpPolling(for: groupPublicKey) } - @objc public func stop() { - Storage.shared - .read { db in - try ClosedGroup - .select(.threadId) - .asRequest(of: String.self) - .fetchAll(db) - } - .defaulting(to: []) - .forEach { [weak self] groupPublicKey in - self?.stopPolling(for: groupPublicKey) - } + public func stopAllPollers() { + let pollers: [String] = Array(isPolling.wrappedValue.keys) + + pollers.forEach { groupPublicKey in + self.stopPolling(for: groupPublicKey) + } } public func stopPolling(for groupPublicKey: String) {