diff --git a/submodules/TelegramUI/TelegramUI/LogoutOptionsController.swift b/submodules/TelegramUI/TelegramUI/LogoutOptionsController.swift index ff6099968a..8f0db26e94 100644 --- a/submodules/TelegramUI/TelegramUI/LogoutOptionsController.swift +++ b/submodules/TelegramUI/TelegramUI/LogoutOptionsController.swift @@ -119,6 +119,7 @@ private func logoutOptionsEntries(presentationData: PresentationData, canAddAcco func logoutOptionsController(context: AccountContext, navigationController: NavigationController, canAddAccounts: Bool, phoneNumber: String) -> ViewController { var pushControllerImpl: ((ViewController) -> Void)? var presentControllerImpl: ((ViewController, Any?) -> Void)? + var replaceTopControllerImpl: ((ViewController) -> Void)? var dismissImpl: (() -> Void)? let supportPeerDisposable = MetaDisposable() @@ -129,7 +130,15 @@ func logoutOptionsController(context: AccountContext, navigationController: Navi dismissImpl?() }, setPasscode: { - pushControllerImpl?(passcodeOptionsController(context: context)) + let _ = passcodeOptionsAccessController(context: context, pushController: { controller in + replaceTopControllerImpl?(controller) + }, completion: { _ in + replaceTopControllerImpl?(passcodeOptionsController(context: context)) + }).start(next: { controller in + if let controller = controller { + pushControllerImpl?(controller) + } + }) dismissImpl?() }, clearCache: { pushControllerImpl?(storageUsageController(context: context)) @@ -224,6 +233,9 @@ func logoutOptionsController(context: AccountContext, navigationController: Navi presentControllerImpl = { [weak controller] value, arguments in controller?.present(value, in: .window(.root), with: arguments ?? ViewControllerPresentationArguments(presentationAnimation: .modalSheet)) } + replaceTopControllerImpl = { [weak navigationController] c in + navigationController?.replaceTopController(c, animated: true) + } dismissImpl = { [weak controller] in let _ = controller?.dismiss() }