diff --git a/submodules/TelegramCore/Sources/Account/Account.swift b/submodules/TelegramCore/Sources/Account/Account.swift index 971e24bb3b..0e93e915b8 100644 --- a/submodules/TelegramCore/Sources/Account/Account.swift +++ b/submodules/TelegramCore/Sources/Account/Account.swift @@ -1196,7 +1196,7 @@ public class Account { self.accountPresenceManager.isPerformingUpdate() |> map { presenceUpdate in if presenceUpdate { print("accountPresenceManager isPerformingUpdate: true") - return [] + //return [] } return presenceUpdate ? AccountRunningImportantTasks.other : [] }, diff --git a/submodules/TelegramCore/Sources/State/ManagedAccountPresence.swift b/submodules/TelegramCore/Sources/State/ManagedAccountPresence.swift index b14f0fbc95..445008c1b9 100644 --- a/submodules/TelegramCore/Sources/State/ManagedAccountPresence.swift +++ b/submodules/TelegramCore/Sources/State/ManagedAccountPresence.swift @@ -16,6 +16,8 @@ private final class AccountPresenceManagerImpl { private let currentRequestDisposable = MetaDisposable() private var onlineTimer: SignalKitTimer? + private var wasOnline: Bool = false + init(queue: Queue, shouldKeepOnlinePresence: Signal, network: Network) { self.queue = queue self.network = network @@ -23,7 +25,13 @@ private final class AccountPresenceManagerImpl { self.shouldKeepOnlinePresenceDisposable = (shouldKeepOnlinePresence |> distinctUntilChanged |> deliverOn(self.queue)).start(next: { [weak self] value in - self?.updatePresence(value) + guard let self else { + return + } + if self.wasOnline != value { + self.wasOnline = value + self.updatePresence(value) + } }) }