mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
If passcode is set, and autolock is present open all links in an external browser as a workaround for invalid application states when presenting system controls (e.g. payment)
This commit is contained in:
parent
4b6cb17755
commit
195734d4ab
@ -686,15 +686,22 @@ func openExternalUrlImpl(context: AccountContext, urlContext: OpenURLContext, ur
|
||||
if parsedUrl.host == "t.me" || parsedUrl.host == "telegram.me" {
|
||||
handleInternalUrl(parsedUrl.absoluteString)
|
||||
} else {
|
||||
let settings = context.sharedContext.accountManager.sharedData(keys: [ApplicationSpecificSharedDataKeys.webBrowserSettings])
|
||||
let settings = combineLatest(context.sharedContext.accountManager.sharedData(keys: [ApplicationSpecificSharedDataKeys.webBrowserSettings, ApplicationSpecificSharedDataKeys.presentationPasscodeSettings]), context.sharedContext.accountManager.accessChallengeData())
|
||||
|> take(1)
|
||||
|> map { sharedData -> WebBrowserSettings in
|
||||
if let current = sharedData.entries[ApplicationSpecificSharedDataKeys.webBrowserSettings] as? WebBrowserSettings {
|
||||
return current
|
||||
} else {
|
||||
return WebBrowserSettings.defaultSettings
|
||||
}
|
||||
}
|
||||
|> map { sharedData, accessChallengeData -> WebBrowserSettings in
|
||||
let passcodeSettings = sharedData.entries[ApplicationSpecificSharedDataKeys.presentationPasscodeSettings] as? PresentationPasscodeSettings ?? PresentationPasscodeSettings.defaultSettings
|
||||
if accessChallengeData.data.isLockable {
|
||||
if passcodeSettings.autolockTimeout != nil {
|
||||
return WebBrowserSettings(defaultWebBrowser: "Safari")
|
||||
}
|
||||
}
|
||||
|
||||
if let current = sharedData.entries[ApplicationSpecificSharedDataKeys.webBrowserSettings] as? WebBrowserSettings {
|
||||
return current
|
||||
} else {
|
||||
return WebBrowserSettings.defaultSettings
|
||||
}
|
||||
}
|
||||
|
||||
let _ = (settings
|
||||
|> deliverOnMainQueue).start(next: { settings in
|
||||
|
Loading…
x
Reference in New Issue
Block a user