From 6289d640b4879390d52ee8c39c3b88668f099526 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Tue, 22 Jun 2021 11:25:48 +0200 Subject: [PATCH] Reveal password: use facility from com.google.android.material.textfield.TextInputLayout instead of manual handling Also avoid repeating password on the change password dialog. --- changelog.d/3545.feature | 1 + .../debug/DebugVectorTextViewActivity.kt | 17 +++++++ .../res/layout/activity_debug_text_view.xml | 18 ++++++- .../app/core/dialogs/ExportKeysDialog.kt | 10 ---- .../app/core/extensions/ViewExtensions.kt | 9 +--- .../core/ui/views/RevealPasswordImageView.kt | 43 ----------------- .../app/features/auth/PromptFragment.kt | 15 +----- .../vector/app/features/auth/ReAuthActions.kt | 1 - .../vector/app/features/auth/ReAuthState.kt | 1 - .../app/features/auth/ReAuthViewModel.kt | 7 --- ...KeysBackupRestoreFromPassphraseFragment.kt | 12 ----- ...eysBackupRestoreFromPassphraseViewModel.kt | 2 - .../setup/KeysBackupSetupSharedViewModel.kt | 5 -- .../setup/KeysBackupSetupStep2Fragment.kt | 20 +++----- .../crypto/quads/SharedSecureStorageAction.kt | 2 - .../quads/SharedSecureStorageViewModel.kt | 10 ---- .../SharedSecuredStoragePassphraseFragment.kt | 9 ---- .../crypto/recover/BootstrapActions.kt | 1 - .../BootstrapConfirmPassphraseFragment.kt | 10 ---- .../BootstrapEnterPassphraseFragment.kt | 6 --- .../recover/BootstrapMigrateBackupFragment.kt | 11 ----- .../recover/BootstrapSharedViewModel.kt | 38 ++------------- .../features/crypto/recover/BootstrapStep.kt | 6 +-- .../app/features/login/LoginFragment.kt | 27 ++--------- .../login/LoginResetPasswordFragment.kt | 25 +--------- .../login2/LoginFragmentSigninPassword2.kt | 25 +--------- .../login2/LoginFragmentSignupPassword2.kt | 25 +--------- .../features/login2/LoginFragmentToAny2.kt | 25 +--------- .../login2/LoginResetPasswordFragment2.kt | 26 +--------- .../settings/VectorSettingsGeneralFragment.kt | 42 +++------------- .../VectorSettingsSecurityPrivacyFragment.kt | 9 ---- .../deactivation/DeactivateAccountAction.kt | 1 - .../DeactivateAccountViewModel.kt | 9 +--- .../features/signout/soft/SoftLogoutAction.kt | 1 - .../signout/soft/SoftLogoutController.kt | 3 -- .../signout/soft/SoftLogoutFragment.kt | 4 -- .../signout/soft/SoftLogoutViewModel.kt | 15 +----- .../signout/soft/SoftLogoutViewState.kt | 1 - .../soft/epoxy/LoginPasswordFormItem.kt | 12 ----- vector/src/main/res/drawable/ic_eye.xml | 10 ---- .../src/main/res/drawable/ic_eye_closed.xml | 7 --- .../res/layout/dialog_change_password.xml | 47 ++++-------------- .../res/layout/dialog_export_e2e_keys.xml | 33 ++++--------- .../res/layout/dialog_import_e2e_keys.xml | 26 +++------- ...gment_bootstrap_enter_account_password.xml | 21 ++------ .../fragment_bootstrap_enter_passphrase.xml | 18 ++----- .../fragment_bootstrap_migrate_backup.xml | 18 ++----- ...nt_keys_backup_restore_from_passphrase.xml | 28 ++++------- .../fragment_keys_backup_setup_step2.xml | 39 ++++----------- vector/src/main/res/layout/fragment_login.xml | 48 +++++++------------ .../layout/fragment_login_reset_password.xml | 48 +++++++------------ .../fragment_login_reset_password_2.xml | 48 +++++++------------ .../fragment_login_signin_password_2.xml | 48 +++++++------------ .../layout/fragment_login_signin_to_any_2.xml | 48 +++++++------------ .../fragment_login_signup_password_2.xml | 48 +++++++------------ .../res/layout/fragment_reauth_confirm.xml | 48 +++++++------------ .../fragment_ssss_access_from_passphrase.xml | 20 ++------ .../res/layout/item_login_password_form.xml | 45 ++++++----------- 58 files changed, 256 insertions(+), 896 deletions(-) create mode 100644 changelog.d/3545.feature delete mode 100644 vector/src/main/java/im/vector/app/core/ui/views/RevealPasswordImageView.kt delete mode 100644 vector/src/main/res/drawable/ic_eye.xml delete mode 100644 vector/src/main/res/drawable/ic_eye_closed.xml diff --git a/changelog.d/3545.feature b/changelog.d/3545.feature new file mode 100644 index 0000000000..f582affbf2 --- /dev/null +++ b/changelog.d/3545.feature @@ -0,0 +1 @@ +Reveal password: use facility from com.google.android.material.textfield.TextInputLayout instead of manual handling. \ No newline at end of file diff --git a/library/ui-styles/src/debug/java/im/vector/lib/ui/styles/debug/DebugVectorTextViewActivity.kt b/library/ui-styles/src/debug/java/im/vector/lib/ui/styles/debug/DebugVectorTextViewActivity.kt index ac3d4ea696..db50500195 100644 --- a/library/ui-styles/src/debug/java/im/vector/lib/ui/styles/debug/DebugVectorTextViewActivity.kt +++ b/library/ui-styles/src/debug/java/im/vector/lib/ui/styles/debug/DebugVectorTextViewActivity.kt @@ -17,6 +17,8 @@ package im.vector.lib.ui.styles.debug import android.os.Bundle +import android.text.InputType +import android.widget.EditText import androidx.appcompat.app.AppCompatActivity import im.vector.lib.ui.styles.databinding.ActivityDebugTextViewBinding @@ -27,5 +29,20 @@ abstract class DebugVectorTextViewActivity : AppCompatActivity() { super.onCreate(savedInstanceState) val views = ActivityDebugTextViewBinding.inflate(layoutInflater) setContentView(views.root) + + views.debugShowPassword.setOnClickListener { + views.debugTextInputEditText.showPassword(true) + } + views.debugHidePassword.setOnClickListener { + views.debugTextInputEditText.showPassword(false) + } + } + + private fun EditText.showPassword(visible: Boolean) { + if (visible) { + inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD + } else { + inputType = InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_VARIATION_PASSWORD + } } } diff --git a/library/ui-styles/src/debug/res/layout/activity_debug_text_view.xml b/library/ui-styles/src/debug/res/layout/activity_debug_text_view.xml index 6ca83c5a8a..1b38f04b97 100644 --- a/library/ui-styles/src/debug/res/layout/activity_debug_text_view.xml +++ b/library/ui-styles/src/debug/res/layout/activity_debug_text_view.xml @@ -1,5 +1,6 @@ + android:hint="Password" + app:errorEnabled="true"> +