diff --git a/Riot/Modules/KeyBackup/Recover/Passphrase/KeyBackupRecoverFromPassphraseViewController.swift b/Riot/Modules/KeyBackup/Recover/Passphrase/KeyBackupRecoverFromPassphraseViewController.swift index 3f4a8dec5..c185869cd 100644 --- a/Riot/Modules/KeyBackup/Recover/Passphrase/KeyBackupRecoverFromPassphraseViewController.swift +++ b/Riot/Modules/KeyBackup/Recover/Passphrase/KeyBackupRecoverFromPassphraseViewController.swift @@ -159,6 +159,15 @@ final class KeyBackupRecoverFromPassphraseViewController: UIViewController { self.recoverButton.isEnabled = self.viewModel.isFormValid } + // bwi: MESSENGER-3948 + private func updateShowHidePassphraseButton() { + if self.passphraseTextField.isSecureTextEntry { + passphraseVisibilityButton.setImage(Asset.Images.revealPasswordButton.image, for: .normal) + } else { + passphraseVisibilityButton.setImage(Asset.Images.hidePasswordButton.image, for: .normal) + } + } + private func render(viewState: KeyBackupRecoverFromPassphraseViewState) { switch viewState { case .loading: @@ -199,6 +208,7 @@ final class KeyBackupRecoverFromPassphraseViewController: UIViewController { @IBAction private func passphraseVisibilityButtonAction(_ sender: Any) { self.passphraseTextField.isSecureTextEntry = !self.passphraseTextField.isSecureTextEntry + self.updateShowHidePassphraseButton() // bwi: MESSENGER-3948 } @objc private func passphraseTextFieldDidChange(_ textField: UITextField) { diff --git a/Riot/Modules/Secrets/Recover/RecoverWithPassphrase/SecretsRecoveryWithPassphraseViewController.swift b/Riot/Modules/Secrets/Recover/RecoverWithPassphrase/SecretsRecoveryWithPassphraseViewController.swift index 462462291..9457f2d7f 100644 --- a/Riot/Modules/Secrets/Recover/RecoverWithPassphrase/SecretsRecoveryWithPassphraseViewController.swift +++ b/Riot/Modules/Secrets/Recover/RecoverWithPassphrase/SecretsRecoveryWithPassphraseViewController.swift @@ -190,6 +190,15 @@ final class SecretsRecoveryWithPassphraseViewController: UIViewController { self.recoverButton.isEnabled = self.viewModel.isFormValid } + // bwi: MESSENGER-3948 + private func updateShowHidePassphraseButton() { + if self.passphraseTextField.isSecureTextEntry { + passphraseVisibilityButton.setImage(Asset.Images.revealPasswordButton.image, for: .normal) + } else { + passphraseVisibilityButton.setImage(Asset.Images.hidePasswordButton.image, for: .normal) + } + } + private func render(viewState: SecretsRecoveryWithPassphraseViewState) { switch viewState { case .loading: @@ -232,6 +241,7 @@ final class SecretsRecoveryWithPassphraseViewController: UIViewController { @IBAction private func passphraseVisibilityButtonAction(_ sender: Any) { self.passphraseTextField.isSecureTextEntry = !self.passphraseTextField.isSecureTextEntry + self.updateShowHidePassphraseButton() // bwi: MESSENGER-3948 } @objc private func passphraseTextFieldDidChange(_ textField: UITextField) { diff --git a/Riot/Modules/Secrets/Setup/RecoveryPassphrase/SecretsSetupRecoveryPassphraseViewController.swift b/Riot/Modules/Secrets/Setup/RecoveryPassphrase/SecretsSetupRecoveryPassphraseViewController.swift index 7c93e85af..3dd135927 100644 --- a/Riot/Modules/Secrets/Setup/RecoveryPassphrase/SecretsSetupRecoveryPassphraseViewController.swift +++ b/Riot/Modules/Secrets/Setup/RecoveryPassphrase/SecretsSetupRecoveryPassphraseViewController.swift @@ -303,6 +303,7 @@ final class SecretsSetupRecoveryPassphraseViewController: UIViewController, UITe return } self.passphraseTextField.isSecureTextEntry.toggle() + self.updateShowHidePassphraseButton() // bwi: MESSENGER-3948 } @objc private func textFieldDidChange(_ textField: UITextField) { @@ -312,6 +313,15 @@ final class SecretsSetupRecoveryPassphraseViewController: UIViewController, UITe self.viewModel.process(viewAction: .updatePassphrase(textField.text)) } + // bwi: MESSENGER-3948 + private func updateShowHidePassphraseButton() { + if self.passphraseTextField.isSecureTextEntry { + passphraseVisibilityButton.setImage(Asset.Images.revealPasswordButton.image, for: .normal) + } else { + passphraseVisibilityButton.setImage(Asset.Images.hidePasswordButton.image, for: .normal) + } + } + @IBAction private func validateButtonAction(_ sender: Any) { self.viewModel.process(viewAction: .validate) } diff --git a/RiotSwiftUI/Modules/Common/Util/PasswordButtonModifier.swift b/RiotSwiftUI/Modules/Common/Util/PasswordButtonModifier.swift index 0e0f38586..3b2710006 100644 --- a/RiotSwiftUI/Modules/Common/Util/PasswordButtonModifier.swift +++ b/RiotSwiftUI/Modules/Common/Util/PasswordButtonModifier.swift @@ -28,7 +28,7 @@ struct PasswordButtonModifier: ViewModifier { // MARK: - Private @Environment(\.theme) private var theme: ThemeSwiftUI - @ScaledMetric private var iconSize = 16 + @ScaledMetric private var iconSize = BWIBuildSettings.shared.bwiEnableBuMUI ? 22 : 16 // MARK: - Public @@ -38,9 +38,11 @@ struct PasswordButtonModifier: ViewModifier { if !text.isEmpty { Button { isSecureTextVisible.toggle() } label: { - Image(Asset.Images.authenticationRevealPassword.name) + // bwi: MESSENGER-3948 + Image(isSecureTextVisible ? Asset.Images.hidePasswordButton.name : Asset.Images.revealPasswordButton.name) .renderingMode(.template) .resizable() + .aspectRatio(contentMode: .fit) .frame(width: iconSize, height: iconSize) .foregroundColor(theme.colors.secondaryContent) }