diff --git a/Riot/Modules/KeyVerification/Device/SelfVerifyWait/KeyVerificationSelfVerifyWaitViewController.swift b/Riot/Modules/KeyVerification/Device/SelfVerifyWait/KeyVerificationSelfVerifyWaitViewController.swift index dd988c45e..6e7a77429 100644 --- a/Riot/Modules/KeyVerification/Device/SelfVerifyWait/KeyVerificationSelfVerifyWaitViewController.swift +++ b/Riot/Modules/KeyVerification/Device/SelfVerifyWait/KeyVerificationSelfVerifyWaitViewController.swift @@ -47,6 +47,7 @@ final class KeyVerificationSelfVerifyWaitViewController: UIViewController { // MARK: Private private var viewModel: KeyVerificationSelfVerifyWaitViewModelType! + private var cancellable: Bool! private var theme: Theme! private var errorPresenter: MXKErrorPresentation! private var activityPresenter: ActivityIndicatorPresenter! @@ -55,9 +56,10 @@ final class KeyVerificationSelfVerifyWaitViewController: UIViewController { // MARK: - Setup - class func instantiate(with viewModel: KeyVerificationSelfVerifyWaitViewModelType) -> KeyVerificationSelfVerifyWaitViewController { + class func instantiate(with viewModel: KeyVerificationSelfVerifyWaitViewModelType, cancellable: Bool = true) -> KeyVerificationSelfVerifyWaitViewController { let viewController = StoryboardScene.KeyVerificationSelfVerifyWaitViewController.initialScene.instantiate() viewController.viewModel = viewModel + viewController.cancellable = cancellable viewController.theme = ThemeService.shared().theme return viewController } @@ -112,15 +114,17 @@ final class KeyVerificationSelfVerifyWaitViewController: UIViewController { } private func setupViews() { - let cancelBarButtonItem = MXKBarButtonItem(title: VectorL10n.skip, style: .plain) { [weak self] in - self?.cancelButtonAction() + if self.cancellable { + let cancelBarButtonItem = MXKBarButtonItem(title: VectorL10n.skip, style: .plain) { [weak self] in + self?.cancelButtonAction() + } + + self.vc_removeBackTitle() + + self.navigationItem.rightBarButtonItem = cancelBarButtonItem + self.cancelBarButtonItem = cancelBarButtonItem } - self.vc_removeBackTitle() - - self.navigationItem.rightBarButtonItem = cancelBarButtonItem - self.cancelBarButtonItem = cancelBarButtonItem - self.title = VectorL10n.deviceVerificationSelfVerifyWaitTitle self.informationLabel.text = VectorL10n.deviceVerificationSelfVerifyWaitInformation(AppInfo.current.displayName) diff --git a/Riot/Modules/Secrets/Recover/RecoverWithKey/SecretsRecoveryWithKeyViewController.swift b/Riot/Modules/Secrets/Recover/RecoverWithKey/SecretsRecoveryWithKeyViewController.swift index 23b48397e..41cf40871 100644 --- a/Riot/Modules/Secrets/Recover/RecoverWithKey/SecretsRecoveryWithKeyViewController.swift +++ b/Riot/Modules/Secrets/Recover/RecoverWithKey/SecretsRecoveryWithKeyViewController.swift @@ -43,6 +43,7 @@ final class SecretsRecoveryWithKeyViewController: UIViewController { private var viewModel: SecretsRecoveryWithKeyViewModelType! private var keyboardAvoider: KeyboardAvoider? + private var cancellable: Bool! private var theme: Theme! private var errorPresenter: MXKErrorPresentation! private var activityPresenter: ActivityIndicatorPresenter! @@ -52,9 +53,10 @@ final class SecretsRecoveryWithKeyViewController: UIViewController { // MARK: - Setup - class func instantiate(with viewModel: SecretsRecoveryWithKeyViewModelType) -> SecretsRecoveryWithKeyViewController { + class func instantiate(with viewModel: SecretsRecoveryWithKeyViewModelType, cancellable: Bool = true) -> SecretsRecoveryWithKeyViewController { let viewController = StoryboardScene.SecretsRecoveryWithKeyViewController.initialScene.instantiate() viewController.viewModel = viewModel + viewController.cancellable = cancellable viewController.theme = ThemeService.shared().theme return viewController } @@ -86,11 +88,13 @@ final class SecretsRecoveryWithKeyViewController: UIViewController { // MARK: - Private private func setupViews() { - let cancelBarButtonItem = MXKBarButtonItem(title: VectorL10n.cancel, style: .plain) { [weak self] in - self?.cancelButtonAction() + if self.cancellable { + let cancelBarButtonItem = MXKBarButtonItem(title: VectorL10n.cancel, style: .plain) { [weak self] in + self?.cancelButtonAction() + } + self.navigationItem.rightBarButtonItem = cancelBarButtonItem } - self.navigationItem.rightBarButtonItem = cancelBarButtonItem - + self.title = VectorL10n.secretsRecoveryWithKeyTitle self.scrollView.keyboardDismissMode = .interactive diff --git a/Riot/Modules/Secrets/Recover/RecoverWithPassphrase/SecretsRecoveryWithPassphraseViewController.swift b/Riot/Modules/Secrets/Recover/RecoverWithPassphrase/SecretsRecoveryWithPassphraseViewController.swift index 0578f2b37..e9cf39efa 100644 --- a/Riot/Modules/Secrets/Recover/RecoverWithPassphrase/SecretsRecoveryWithPassphraseViewController.swift +++ b/Riot/Modules/Secrets/Recover/RecoverWithPassphrase/SecretsRecoveryWithPassphraseViewController.swift @@ -44,6 +44,7 @@ final class SecretsRecoveryWithPassphraseViewController: UIViewController { private var viewModel: SecretsRecoveryWithPassphraseViewModelType! private var keyboardAvoider: KeyboardAvoider? + private var cancellable: Bool! private var theme: Theme! private var errorPresenter: MXKErrorPresentation! private var activityPresenter: ActivityIndicatorPresenter! @@ -52,9 +53,10 @@ final class SecretsRecoveryWithPassphraseViewController: UIViewController { // MARK: - Setup - class func instantiate(with viewModel: SecretsRecoveryWithPassphraseViewModelType) -> SecretsRecoveryWithPassphraseViewController { + class func instantiate(with viewModel: SecretsRecoveryWithPassphraseViewModelType, cancellable: Bool = true) -> SecretsRecoveryWithPassphraseViewController { let viewController = StoryboardScene.SecretsRecoveryWithPassphraseViewController.initialScene.instantiate() viewController.viewModel = viewModel + viewController.cancellable = cancellable viewController.theme = ThemeService.shared().theme return viewController } @@ -86,11 +88,13 @@ final class SecretsRecoveryWithPassphraseViewController: UIViewController { // MARK: - Private private func setupViews() { - let cancelBarButtonItem = MXKBarButtonItem(title: VectorL10n.cancel, style: .plain) { [weak self] in - self?.viewModel.process(viewAction: .cancel) + if self.cancellable { + let cancelBarButtonItem = MXKBarButtonItem(title: VectorL10n.cancel, style: .plain) { [weak self] in + self?.viewModel.process(viewAction: .cancel) + } + self.navigationItem.rightBarButtonItem = cancelBarButtonItem } - self.navigationItem.rightBarButtonItem = cancelBarButtonItem - + self.title = VectorL10n.secretsRecoveryWithPassphraseTitle self.scrollView.keyboardDismissMode = .interactive diff --git a/Riot/Modules/Secrets/Setup/RecoveryKey/SecretsSetupRecoveryKeyViewController.swift b/Riot/Modules/Secrets/Setup/RecoveryKey/SecretsSetupRecoveryKeyViewController.swift index e6be0650d..0a5003bef 100644 --- a/Riot/Modules/Secrets/Setup/RecoveryKey/SecretsSetupRecoveryKeyViewController.swift +++ b/Riot/Modules/Secrets/Setup/RecoveryKey/SecretsSetupRecoveryKeyViewController.swift @@ -34,6 +34,7 @@ final class SecretsSetupRecoveryKeyViewController: UIViewController { private var viewModel: SecretsSetupRecoveryKeyViewModelType! private var isPassphraseOnly: Bool = true + private var cancellable: Bool! private var theme: Theme! private var errorPresenter: MXKErrorPresentation! private var activityPresenter: ActivityIndicatorPresenter! @@ -43,9 +44,10 @@ final class SecretsSetupRecoveryKeyViewController: UIViewController { // MARK: - Setup - class func instantiate(with viewModel: SecretsSetupRecoveryKeyViewModelType) -> SecretsSetupRecoveryKeyViewController { + class func instantiate(with viewModel: SecretsSetupRecoveryKeyViewModelType, cancellable: Bool = true) -> SecretsSetupRecoveryKeyViewController { let viewController = StoryboardScene.SecretsSetupRecoveryKeyViewController.initialScene.instantiate() viewController.viewModel = viewModel + viewController.cancellable = cancellable viewController.theme = ThemeService.shared().theme return viewController } @@ -108,12 +110,14 @@ final class SecretsSetupRecoveryKeyViewController: UIViewController { } private func setupViews() { - let cancelBarButtonItem = MXKBarButtonItem(title: VectorL10n.cancel, style: .plain) { [weak self] in - self?.cancelButtonAction() + if self.cancellable { + let cancelBarButtonItem = MXKBarButtonItem(title: VectorL10n.cancel, style: .plain) { [weak self] in + self?.cancelButtonAction() + } + + self.navigationItem.rightBarButtonItem = cancelBarButtonItem } - - self.navigationItem.rightBarButtonItem = cancelBarButtonItem - + self.vc_removeBackTitle() self.title = VectorL10n.secretsSetupRecoveryKeyTitle diff --git a/Riot/Modules/Secrets/Setup/RecoveryPassphrase/SecretsSetupRecoveryPassphraseViewController.swift b/Riot/Modules/Secrets/Setup/RecoveryPassphrase/SecretsSetupRecoveryPassphraseViewController.swift index 0cb5bd2d2..8b52458aa 100644 --- a/Riot/Modules/Secrets/Setup/RecoveryPassphrase/SecretsSetupRecoveryPassphraseViewController.swift +++ b/Riot/Modules/Secrets/Setup/RecoveryPassphrase/SecretsSetupRecoveryPassphraseViewController.swift @@ -53,6 +53,7 @@ final class SecretsSetupRecoveryPassphraseViewController: UIViewController { // MARK: Private private var viewModel: SecretsSetupRecoveryPassphraseViewModelType! + private var cancellable: Bool! private var theme: Theme! private var keyboardAvoider: KeyboardAvoider? private var errorPresenter: MXKErrorPresentation! @@ -64,9 +65,10 @@ final class SecretsSetupRecoveryPassphraseViewController: UIViewController { // MARK: - Setup - class func instantiate(with viewModel: SecretsSetupRecoveryPassphraseViewModelType) -> SecretsSetupRecoveryPassphraseViewController { + class func instantiate(with viewModel: SecretsSetupRecoveryPassphraseViewModelType, cancellable: Bool = true) -> SecretsSetupRecoveryPassphraseViewController { let viewController = StoryboardScene.SecretsSetupRecoveryPassphraseViewController.initialScene.instantiate() viewController.viewModel = viewModel + viewController.cancellable = cancellable viewController.theme = ThemeService.shared().theme return viewController } @@ -119,12 +121,14 @@ final class SecretsSetupRecoveryPassphraseViewController: UIViewController { // MARK: - Private private func setupViews() { - let cancelBarButtonItem = MXKBarButtonItem(title: VectorL10n.cancel, style: .plain) { [weak self] in - self?.cancelButtonAction() + if self.cancellable { + let cancelBarButtonItem = MXKBarButtonItem(title: VectorL10n.cancel, style: .plain) { [weak self] in + self?.cancelButtonAction() + } + + self.navigationItem.rightBarButtonItem = cancelBarButtonItem } - self.navigationItem.rightBarButtonItem = cancelBarButtonItem - self.vc_removeBackTitle() self.title = VectorL10n.secretsSetupRecoveryPassphraseTitle diff --git a/Riot/Modules/SecureBackup/Setup/Intro/SecureBackupSetupIntroViewController.swift b/Riot/Modules/SecureBackup/Setup/Intro/SecureBackupSetupIntroViewController.swift index 346f0c535..c16a3b813 100644 --- a/Riot/Modules/SecureBackup/Setup/Intro/SecureBackupSetupIntroViewController.swift +++ b/Riot/Modules/SecureBackup/Setup/Intro/SecureBackupSetupIntroViewController.swift @@ -39,6 +39,7 @@ final class SecureBackupSetupIntroViewController: UIViewController { // MARK: Private private var viewModel: SecureBackupSetupIntroViewModelType! + private var cancellable: Bool! private var theme: Theme! private var activityIndicatorPresenter: ActivityIndicatorPresenter! @@ -50,9 +51,10 @@ final class SecureBackupSetupIntroViewController: UIViewController { // MARK: - Setup - class func instantiate(with viewModel: SecureBackupSetupIntroViewModelType) -> SecureBackupSetupIntroViewController { + class func instantiate(with viewModel: SecureBackupSetupIntroViewModelType, cancellable: Bool = true) -> SecureBackupSetupIntroViewController { let viewController = StoryboardScene.SecureBackupSetupIntroViewController.initialScene.instantiate() viewController.viewModel = viewModel + viewController.cancellable = cancellable viewController.theme = ThemeService.shared().theme return viewController } @@ -86,13 +88,15 @@ final class SecureBackupSetupIntroViewController: UIViewController { // MARK: - Private private func setupViews() { - let cancelBarButtonItem = MXKBarButtonItem(title: VectorL10n.cancel, style: .plain) { [weak self] in - guard let self = self else { - return + if self.cancellable { + let cancelBarButtonItem = MXKBarButtonItem(title: VectorL10n.cancel, style: .plain) { [weak self] in + guard let self = self else { + return + } + self.delegate?.secureBackupSetupIntroViewControllerDidCancel(self, showSkipAlert: true) } - self.delegate?.secureBackupSetupIntroViewControllerDidCancel(self, showSkipAlert: true) + self.navigationItem.rightBarButtonItem = cancelBarButtonItem } - self.navigationItem.rightBarButtonItem = cancelBarButtonItem self.title = VectorL10n.secureKeyBackupSetupIntroTitle