From 417afbbcb98df4e601fc4a5e9570728aeb576f36 Mon Sep 17 00:00:00 2001 From: Ryan ZHAO Date: Wed, 12 Aug 2020 15:35:19 +1000 Subject: [PATCH] fix duplicated message shown in open groups --- .../src/Loki/API/Open Groups/PublicChatPoller.swift | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/SignalServiceKit/src/Loki/API/Open Groups/PublicChatPoller.swift b/SignalServiceKit/src/Loki/API/Open Groups/PublicChatPoller.swift index d60046331..3e4efc7e1 100644 --- a/SignalServiceKit/src/Loki/API/Open Groups/PublicChatPoller.swift +++ b/SignalServiceKit/src/Loki/API/Open Groups/PublicChatPoller.swift @@ -8,6 +8,7 @@ public final class PublicChatPoller : NSObject { private var pollForModeratorsTimer: Timer? = nil private var pollForDisplayNamesTimer: Timer? = nil private var hasStarted = false + private var isPolling = false // MARK: Settings private let pollForNewMessagesInterval: TimeInterval = 4 @@ -54,9 +55,12 @@ public final class PublicChatPoller : NSObject { } public func pollForNewMessages() -> Promise { + guard !self.isPolling else { return Promise.value(()) } + self.isPolling = true let publicChat = self.publicChat let userPublicKey = getUserHexEncodedPublicKey() return PublicChatAPI.getMessages(for: publicChat.channel, on: publicChat.server).done(on: DispatchQueue.global(qos: .default)) { messages in + self.isPolling = false let uniquePublicKeys = Set(messages.map { $0.senderPublicKey }) func proceed() { let storage = OWSPrimaryStorage.shared()