From 0a5ab8fbc5e9c59cd4991c093a478ed94ffb67cb Mon Sep 17 00:00:00 2001 From: Emma Falkiewitz <emma.falkiewitz@savoirfairelinux.com> Date: Tue, 29 Aug 2023 13:48:42 -0400 Subject: [PATCH] Scroll and validate buttons working when setting new password GitLab: #1267 Change-Id: I72abcd75e1842f3cb64a86ca595273bfe7bd93ad --- .../cx/ring/account/ChangePasswordDialog.kt | 19 +++++++++++-------- .../main/res/layout/dialog_set_password.xml | 6 +++--- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/jami-android/app/src/main/java/cx/ring/account/ChangePasswordDialog.kt b/jami-android/app/src/main/java/cx/ring/account/ChangePasswordDialog.kt index 7a3cdd463..36ef12051 100644 --- a/jami-android/app/src/main/java/cx/ring/account/ChangePasswordDialog.kt +++ b/jami-android/app/src/main/java/cx/ring/account/ChangePasswordDialog.kt @@ -25,6 +25,7 @@ import android.view.WindowManager import android.view.inputmethod.EditorInfo import android.widget.TextView import androidx.appcompat.app.AlertDialog +import androidx.core.view.isVisible import androidx.fragment.app.DialogFragment import com.google.android.material.dialog.MaterialAlertDialogBuilder import cx.ring.R @@ -38,18 +39,20 @@ class ChangePasswordDialog : DialogFragment() { } override fun onCreateDialog(savedInstanceState: Bundle?): Dialog { - binding = DialogSetPasswordBinding.inflate(requireActivity().layoutInflater) val hasPassword = arguments?.getBoolean(AccountEditionFragment.ACCOUNT_HAS_PASSWORD_KEY, true) ?: true val passwordMessage = if (hasPassword) R.string.account_password_change else R.string.account_password_set - binding!!.oldPasswordTxtBox.visibility = if (hasPassword) View.VISIBLE else View.GONE - binding!!.newPasswordRepeatTxt.setOnEditorActionListener { v: TextView?, actionId: Int, event: KeyEvent? -> - if (actionId == EditorInfo.IME_ACTION_DONE) { - if (validate()) { - dialog!!.dismiss() - return@setOnEditorActionListener true + + binding = DialogSetPasswordBinding.inflate(requireActivity().layoutInflater).apply { + oldPasswordTxtBox.isVisible = hasPassword + newPasswordRepeatTxt.setOnEditorActionListener { v: TextView?, actionId: Int, event: KeyEvent? -> + if (actionId == EditorInfo.IME_ACTION_DONE) { + if (validate()) { + dialog!!.dismiss() + return@setOnEditorActionListener true + } } + false } - false } val result = MaterialAlertDialogBuilder(requireContext()) .setView(binding!!.root) diff --git a/jami-android/app/src/main/res/layout/dialog_set_password.xml b/jami-android/app/src/main/res/layout/dialog_set_password.xml index f0ce63807..88dfee542 100644 --- a/jami-android/app/src/main/res/layout/dialog_set_password.xml +++ b/jami-android/app/src/main/res/layout/dialog_set_password.xml @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="utf-8"?> -<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="wrap_content" +<androidx.core.widget.NestedScrollView xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" android:layout_height="wrap_content" android:fadeScrollbars="false" android:scrollIndicators="top|bottom"> @@ -71,4 +71,4 @@ </LinearLayout> -</ScrollView> \ No newline at end of file +</androidx.core.widget.NestedScrollView> \ No newline at end of file -- GitLab