From eafff041df4776d3c1d14e9a42a92d134a5b872d Mon Sep 17 00:00:00 2001 From: Niels Andriesse Date: Mon, 7 Dec 2020 11:45:56 +1100 Subject: [PATCH] Debug open group background polling --- .../Pollers/OpenGroupPoller.swift | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/SessionMessagingKit/Sending & Receiving/Pollers/OpenGroupPoller.swift b/SessionMessagingKit/Sending & Receiving/Pollers/OpenGroupPoller.swift index 995c1cc9c..429f9b127 100644 --- a/SessionMessagingKit/Sending & Receiving/Pollers/OpenGroupPoller.swift +++ b/SessionMessagingKit/Sending & Receiving/Pollers/OpenGroupPoller.swift @@ -9,6 +9,14 @@ public final class OpenGroupPoller : NSObject { private var hasStarted = false private var isPolling = false + private var isMainAppAndActive: Bool { + var isMainAppAndActive = false + if let sharedUserDefaults = UserDefaults(suiteName: "group.com.loki-project.loki-messenger") { + isMainAppAndActive = sharedUserDefaults.bool(forKey: "isMainAppActive") + } + return isMainAppAndActive + } + // MARK: Settings private let pollForNewMessagesInterval: TimeInterval = 4 private let pollForDeletedMessagesInterval: TimeInterval = 60 @@ -22,7 +30,8 @@ public final class OpenGroupPoller : NSObject { } @objc public func startIfNeeded() { - if hasStarted { return } + guard !hasStarted else { return } + guard isMainAppAndActive else { stop(); return } DispatchQueue.main.async { [weak self] in // Timers don't do well on background queues guard let strongSelf = self else { return } strongSelf.pollForNewMessagesTimer = Timer.scheduledTimer(withTimeInterval: strongSelf.pollForNewMessagesInterval, repeats: true) { _ in self?.pollForNewMessages() } @@ -51,6 +60,7 @@ public final class OpenGroupPoller : NSObject { @discardableResult public func pollForNewMessages() -> Promise { + guard isMainAppAndActive else { stop(); return Promise.value(()) } return pollForNewMessages(isBackgroundPoll: false) }