mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-22 06:10:03 +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" {
|
if parsedUrl.host == "t.me" || parsedUrl.host == "telegram.me" {
|
||||||
handleInternalUrl(parsedUrl.absoluteString)
|
handleInternalUrl(parsedUrl.absoluteString)
|
||||||
} else {
|
} 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)
|
|> take(1)
|
||||||
|> map { sharedData -> WebBrowserSettings in
|
|> map { sharedData, accessChallengeData -> WebBrowserSettings in
|
||||||
if let current = sharedData.entries[ApplicationSpecificSharedDataKeys.webBrowserSettings] as? WebBrowserSettings {
|
let passcodeSettings = sharedData.entries[ApplicationSpecificSharedDataKeys.presentationPasscodeSettings] as? PresentationPasscodeSettings ?? PresentationPasscodeSettings.defaultSettings
|
||||||
return current
|
if accessChallengeData.data.isLockable {
|
||||||
} else {
|
if passcodeSettings.autolockTimeout != nil {
|
||||||
return WebBrowserSettings.defaultSettings
|
return WebBrowserSettings(defaultWebBrowser: "Safari")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if let current = sharedData.entries[ApplicationSpecificSharedDataKeys.webBrowserSettings] as? WebBrowserSettings {
|
||||||
|
return current
|
||||||
|
} else {
|
||||||
|
return WebBrowserSettings.defaultSettings
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
let _ = (settings
|
let _ = (settings
|
||||||
|> deliverOnMainQueue).start(next: { settings in
|
|> deliverOnMainQueue).start(next: { settings in
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user