From e61f8f5e1dfb29c4051f29cc47cb689f586b7196 Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Fri, 10 Mar 2023 18:31:04 +0400 Subject: [PATCH] Fix send when online visibility --- submodules/AttachmentUI/Sources/AttachmentPanel.swift | 7 +++++-- .../MediaPickerUI/Sources/LegacyMediaPickerGallery.swift | 7 +++++-- submodules/TelegramUI/Sources/ChatController.swift | 7 +++++-- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/submodules/AttachmentUI/Sources/AttachmentPanel.swift b/submodules/AttachmentUI/Sources/AttachmentPanel.swift index 305e1df444..98cec79c87 100644 --- a/submodules/AttachmentUI/Sources/AttachmentPanel.swift +++ b/submodules/AttachmentUI/Sources/AttachmentPanel.swift @@ -940,8 +940,11 @@ final class AttachmentPanel: ASDisplayNode, UIScrollViewDelegate { return } var sendWhenOnlineAvailable = false - if let presence = peerView.peerPresences[peer.id] as? TelegramUserPresence, case .present = presence.status { - sendWhenOnlineAvailable = true + if let presence = peerView.peerPresences[peer.id] as? TelegramUserPresence, case let .present(until) = presence.status { + let currentTime = Int32(CFAbsoluteTimeGetCurrent() + kCFAbsoluteTimeIntervalSince1970) + if currentTime > until { + sendWhenOnlineAvailable = true + } } if peer.id.namespace == Namespaces.Peer.CloudUser && peer.id.id._internalGetInt64Value() == 777000 { sendWhenOnlineAvailable = false diff --git a/submodules/MediaPickerUI/Sources/LegacyMediaPickerGallery.swift b/submodules/MediaPickerUI/Sources/LegacyMediaPickerGallery.swift index d2e17bb4dc..0850de8c80 100644 --- a/submodules/MediaPickerUI/Sources/LegacyMediaPickerGallery.swift +++ b/submodules/MediaPickerUI/Sources/LegacyMediaPickerGallery.swift @@ -246,8 +246,11 @@ func presentLegacyMediaPickerGallery(context: AccountContext, peer: EnginePeer?, return false } var sendWhenOnlineAvailable = false - if let presence = peerView.peerPresences[peer.id] as? TelegramUserPresence, case .present = presence.status { - sendWhenOnlineAvailable = true + if let presence = peerView.peerPresences[peer.id] as? TelegramUserPresence, case let .present(until) = presence.status { + let currentTime = Int32(CFAbsoluteTimeGetCurrent() + kCFAbsoluteTimeIntervalSince1970) + if currentTime > until { + sendWhenOnlineAvailable = true + } } if peer.id.namespace == Namespaces.Peer.CloudUser && peer.id.id._internalGetInt64Value() == 777000 { sendWhenOnlineAvailable = false diff --git a/submodules/TelegramUI/Sources/ChatController.swift b/submodules/TelegramUI/Sources/ChatController.swift index 0e42e7860b..0e3ca261b1 100644 --- a/submodules/TelegramUI/Sources/ChatController.swift +++ b/submodules/TelegramUI/Sources/ChatController.swift @@ -9868,8 +9868,11 @@ public final class ChatControllerImpl: TelegramBaseController, ChatController, G return } var sendWhenOnlineAvailable = false - if let presence = peerView.peerPresences[peer.id] as? TelegramUserPresence, case .present = presence.status { - sendWhenOnlineAvailable = true + if let presence = peerView.peerPresences[peer.id] as? TelegramUserPresence, case let .present(until) = presence.status { + let currentTime = Int32(CFAbsoluteTimeGetCurrent() + kCFAbsoluteTimeIntervalSince1970) + if currentTime > until { + sendWhenOnlineAvailable = true + } } if peer.id.namespace == Namespaces.Peer.CloudUser && peer.id.id._internalGetInt64Value() == 777000 { sendWhenOnlineAvailable = false