From e8b193443d1b84f00390138a82c44ebfcceb496a Mon Sep 17 00:00:00 2001 From: Peter <> Date: Thu, 30 May 2019 12:33:14 +0200 Subject: [PATCH] Dismiss native controller (usually Safari) when handling certain urls --- TelegramUI/OpenUrl.swift | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/TelegramUI/OpenUrl.swift b/TelegramUI/OpenUrl.swift index 9dae6a884f..fc6f7cdd99 100644 --- a/TelegramUI/OpenUrl.swift +++ b/TelegramUI/OpenUrl.swift @@ -189,22 +189,20 @@ public func openExternalUrl(context: AccountContext, urlContext: OpenURLContext switch navigation { case .info: let _ = (context.account.postbox.loadedPeerWithId(peerId) - |> deliverOnMainQueue).start(next: { peer in - if let infoController = peerInfoController(context: context, peer: peer) { - if let navigationController = navigationController { - navigationController.view.window?.rootViewController?.dismiss(animated: true, completion: nil) - } - navigationController?.pushViewController(infoController) - } - }) + |> deliverOnMainQueue).start(next: { peer in + if let infoController = peerInfoController(context: context, peer: peer) { + context.sharedContext.applicationBindings.dismissNativeController() + navigationController?.pushViewController(infoController) + } + }) case let .chat(_, messageId): + context.sharedContext.applicationBindings.dismissNativeController() if let navigationController = navigationController { - navigationController.view.window?.rootViewController?.dismiss(animated: true, completion: nil) navigateToChatController(navigationController: navigationController, context: context, chatLocation: .peer(peerId), messageId: messageId) } case let .withBotStartPayload(payload): + context.sharedContext.applicationBindings.dismissNativeController() if let navigationController = navigationController { - navigationController.view.window?.rootViewController?.dismiss(animated: true, completion: nil) navigateToChatController(navigationController: navigationController, context: context, chatLocation: .peer(peerId), botStart: payload) } default: