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