From 03e9a1e3138ba957e1f38fa6e0ef19f161a9183f Mon Sep 17 00:00:00 2001 From: Ilya Laktyushin Date: Fri, 8 Jul 2022 13:52:21 +0200 Subject: [PATCH] Fix return to app after web view --- .../Sources/NavigateToChatController.swift | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/submodules/TelegramUI/Sources/NavigateToChatController.swift b/submodules/TelegramUI/Sources/NavigateToChatController.swift index 4154be2ba1..73efd2e9a8 100644 --- a/submodules/TelegramUI/Sources/NavigateToChatController.swift +++ b/submodules/TelegramUI/Sources/NavigateToChatController.swift @@ -11,6 +11,7 @@ import ChatListUI import PeerAvatarGalleryUI import SettingsUI import ChatPresentationInterfaceState +import AttachmentUI public func navigateToChatControllerImpl(_ params: NavigateToChatControllerParams) { var found = false @@ -21,6 +22,7 @@ public func navigateToChatControllerImpl(_ params: NavigateToChatControllerParam if let updateTextInputState = params.updateTextInputState { controller.updateTextInputState(updateTextInputState) } + var popAndComplete = true if let subject = params.subject, case let .message(messageSubject, _, timecode) = subject { if case let .id(messageId) = messageSubject { let navigationController = params.navigationController @@ -33,22 +35,24 @@ public func navigateToChatControllerImpl(_ params: NavigateToChatControllerParam (navigationController?.viewControllers.last as? ViewController)?.present(c, in: .window(.root), with: a) }) } + popAndComplete = false } else if params.scrollToEndIfExists && isFirst { controller.scrollToEndOfHistory() - let _ = params.navigationController.popToViewController(controller, animated: params.animated) - params.completion(controller) } else if let search = params.activateMessageSearch { controller.activateSearch(domain: search.0, query: search.1) - let _ = params.navigationController.popToViewController(controller, animated: params.animated) - params.completion(controller) } else if let reportReason = params.reportReason { controller.beginReportSelection(reason: reportReason) - let _ = params.navigationController.popToViewController(controller, animated: params.animated) - params.completion(controller) - } else { - let _ = params.navigationController.popToViewController(controller, animated: params.animated) + } + + if popAndComplete { + if let _ = params.navigationController.viewControllers.last as? AttachmentController, let controller = params.navigationController.viewControllers[params.navigationController.viewControllers.count - 2] as? ChatControllerImpl, controller.chatLocation == params.chatLocation { + + } else { + let _ = params.navigationController.popToViewController(controller, animated: params.animated) + } params.completion(controller) } + controller.purposefulAction = params.purposefulAction if params.activateInput { controller.activateInput()