From 9073516dbd74cd6e7b2c900cfcbe65a02a54fcd6 Mon Sep 17 00:00:00 2001 From: Ali <> Date: Wed, 22 Jan 2020 00:16:42 +0400 Subject: [PATCH] Move screenshot detection activation to a later stage --- .../SecretMediaPreviewController.swift | 28 ++++++++++--------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift b/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift index 4a2df1e638..3c36aeaa18 100644 --- a/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift +++ b/submodules/GalleryUI/Sources/SecretMediaPreviewController.swift @@ -122,6 +122,7 @@ private final class SecretMediaPreviewControllerNode: GalleryControllerNode { public final class SecretMediaPreviewController: ViewController { private let context: AccountContext + private let messageId: MessageId private let _ready = Promise() override public var ready: Promise { @@ -150,6 +151,7 @@ public final class SecretMediaPreviewController: ViewController { public init(context: AccountContext, messageId: MessageId) { self.context = context + self.messageId = messageId self.presentationData = context.sharedContext.currentPresentationData.with { $0 } super.init(navigationBarPresentationData: NavigationBarPresentationData(theme: GalleryController.darkNavigationTheme, strings: NavigationBarStrings(presentationStrings: self.presentationData.strings))) @@ -159,8 +161,6 @@ public final class SecretMediaPreviewController: ViewController { self.statusBar.statusBarStyle = .White - - self.disposable.set((context.account.postbox.messageView(messageId) |> deliverOnMainQueue).start(next: { [weak self] view in if let strongSelf = self { strongSelf.messageView = view @@ -178,17 +178,6 @@ public final class SecretMediaPreviewController: ViewController { return nil } }) - - self.screenCaptureEventsDisposable = (screenCaptureEvents() - |> deliverOnMainQueue).start(next: { [weak self] _ in - if let strongSelf = self, strongSelf.traceVisibility() { - if messageId.peerId.namespace == Namespaces.Peer.CloudUser { - let _ = enqueueMessages(account: context.account, peerId: messageId.peerId, messages: [.message(text: "", attributes: [], mediaReference: .standalone(media: TelegramMediaAction(action: TelegramMediaActionType.historyScreenshot)), replyToMessageId: nil, localGroupingKey: nil)]).start() - } else if messageId.peerId.namespace == Namespaces.Peer.SecretChat { - let _ = addSecretChatMessageScreenshot(account: context.account, peerId: messageId.peerId).start() - } - } - }) } required public init(coder aDecoder: NSCoder) { @@ -348,6 +337,19 @@ public final class SecretMediaPreviewController: ViewController { override public func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) + if self.screenCaptureEventsDisposable == nil { + self.screenCaptureEventsDisposable = (screenCaptureEvents() + |> deliverOnMainQueue).start(next: { [weak self] _ in + if let strongSelf = self, strongSelf.traceVisibility() { + if strongSelf.messageId.peerId.namespace == Namespaces.Peer.CloudUser { + let _ = enqueueMessages(account: strongSelf.context.account, peerId: strongSelf.messageId.peerId, messages: [.message(text: "", attributes: [], mediaReference: .standalone(media: TelegramMediaAction(action: TelegramMediaActionType.historyScreenshot)), replyToMessageId: nil, localGroupingKey: nil)]).start() + } else if strongSelf.messageId.peerId.namespace == Namespaces.Peer.SecretChat { + let _ = addSecretChatMessageScreenshot(account: strongSelf.context.account, peerId: strongSelf.messageId.peerId).start() + } + } + }) + } + var nodeAnimatesItself = false if let centralItemNode = self.controllerNode.pager.centralItemNode(), let message = self.messageView?.message {