diff --git a/submodules/PremiumUI/Sources/PremiumIntroScreen.swift b/submodules/PremiumUI/Sources/PremiumIntroScreen.swift index 5e56d3d847..0de0d55b49 100644 --- a/submodules/PremiumUI/Sources/PremiumIntroScreen.swift +++ b/submodules/PremiumUI/Sources/PremiumIntroScreen.swift @@ -1190,8 +1190,8 @@ private final class PremiumIntroScreenContentComponent: CombinedComponent { let controller = environment.controller() as? PremiumIntroScreen, let navigationController = controller.navigationController as? NavigationController { if url.hasPrefix("https://apps.apple.com/account/subscriptions") { controller.context.sharedContext.applicationBindings.openSubscriptions() - } else if url.hasPrefix("https://") { - controller.context.sharedContext.openExternalUrl(context: controller.context, urlContext: .generic, url: url, forceExternal: true, presentationData: controller.context.sharedContext.currentPresentationData.with({$0}), navigationController: nil, dismissInput: {}) + } else if url.hasPrefix("https://") || url.hasPrefix("tg://") { + controller.context.sharedContext.openExternalUrl(context: controller.context, urlContext: .generic, url: url, forceExternal: !url.hasPrefix("tg://"), presentationData: controller.context.sharedContext.currentPresentationData.with({$0}), navigationController: nil, dismissInput: {}) } else { let context = controller.context let signal: Signal? diff --git a/submodules/TelegramUI/Sources/OpenUrl.swift b/submodules/TelegramUI/Sources/OpenUrl.swift index e06417714c..5428f9c155 100644 --- a/submodules/TelegramUI/Sources/OpenUrl.swift +++ b/submodules/TelegramUI/Sources/OpenUrl.swift @@ -13,6 +13,8 @@ import PassportUI import UrlHandling import OpenInExternalAppUI import BrowserUI +import OverlayStatusController +import PresentationDataUtils public struct ParsedSecureIdUrl { public let peerId: PeerId @@ -764,7 +766,12 @@ func openExternalUrlImpl(context: AccountContext, urlContext: OpenURLContext, ur } else if parsedUrl.host == "premium_offer" { handleResolvedUrl(.premiumOffer(reference: nil)) } else if parsedUrl.host == "restore_purchases" { - context.inAppPurchaseManager?.restorePurchases(completion: { result in + let statusController = OverlayStatusController(theme: presentationData.theme, type: .loading(cancelled: nil)) + context.sharedContext.presentGlobalController(statusController, nil) + + context.inAppPurchaseManager?.restorePurchases(completion: { [weak statusController] result in + statusController?.dismiss() + let text: String switch result { case .succeed: @@ -772,11 +779,8 @@ func openExternalUrlImpl(context: AccountContext, urlContext: OpenURLContext, ur case .failed: text = presentationData.strings.Premium_Restore_ErrorUnknown } - context.sharedContext.presentGlobalController(standardTextAlertController(theme: AlertControllerTheme(presentationData: presentationData), title: nil, text: text, actions: [ - TextAlertAction(type: .genericAction, title: presentationData.strings.Common_OK, action: { - }), - ], parseMarkdown: true), nil) - + let alertController = textAlertController(context: context, title: nil, text: text, actions: [TextAlertAction(type: .defaultAction, title: presentationData.strings.Common_OK, action: {})]) + context.sharedContext.presentGlobalController(alertController, nil) }) } }