mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-24 07:05:35 +00:00
Don't donate send message intents when passcode is enabled
Delete all already donated intents after passcode has been set up
This commit is contained in:
@@ -15,6 +15,7 @@ import AccountContext
|
||||
import LocalAuth
|
||||
import PasscodeUI
|
||||
import TelegramStringFormatting
|
||||
import TelegramIntents
|
||||
|
||||
private final class PasscodeOptionsControllerArguments {
|
||||
let turnPasscodeOff: () -> Void
|
||||
@@ -414,6 +415,7 @@ public func passcodeOptionsAccessController(context: AccountContext, animateIn:
|
||||
}, error: { _ in
|
||||
}, completed: {
|
||||
completion(true)
|
||||
deleteAllSendMessageIntents()
|
||||
})
|
||||
}
|
||||
pushController?(setupController)
|
||||
|
||||
@@ -58,7 +58,16 @@ public enum SendMessageIntentSubject: CaseIterable {
|
||||
|
||||
public func donateSendMessageIntent(account: Account, sharedContext: SharedAccountContext, intentContext: SendMessageIntentContext, peerIds: [PeerId]) {
|
||||
if #available(iOSApplicationExtension 13.2, iOS 13.2, *) {
|
||||
let _ = (sharedContext.accountManager.sharedData(keys: [ApplicationSpecificSharedDataKeys.intentsSettings])
|
||||
let _ = (sharedContext.accountManager.transaction { transaction -> Bool in
|
||||
if case .none = transaction.getAccessChallengeData() {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
|> mapToSignal { unlocked -> Signal<[(Peer, SendMessageIntentSubject, UIImage?)], NoError> in
|
||||
if unlocked {
|
||||
return sharedContext.accountManager.sharedData(keys: [ApplicationSpecificSharedDataKeys.intentsSettings])
|
||||
|> mapToSignal { sharedData -> Signal<[(Peer, SendMessageIntentSubject)], NoError> in
|
||||
let settings = (sharedData.entries[ApplicationSpecificSharedDataKeys.intentsSettings] as? IntentsSettings) ?? IntentsSettings.defaultSettings
|
||||
if let accountId = settings.account, accountId != account.peerId {
|
||||
@@ -134,6 +143,10 @@ public func donateSendMessageIntent(account: Account, sharedContext: SharedAccou
|
||||
}
|
||||
return combineLatest(signals)
|
||||
}
|
||||
} else {
|
||||
return .single([])
|
||||
}
|
||||
}
|
||||
|> deliverOnMainQueue).start(next: { peers in
|
||||
let presentationData = sharedContext.currentPresentationData.with { $0 }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user