From 48d00251b63fd23b1959ee87de32edc7eb2349c9 Mon Sep 17 00:00:00 2001
From: Pierre Nicolas <pierre.nicolas@savoirfairelinux.com>
Date: Fri, 2 Aug 2024 09:57:15 -0400
Subject: [PATCH] account_settings: close keyboard after done clicked

GitLab: #1736
Change-Id: Iad67501e989e17aeccb1f23b92e60c5fced503fc
---
 .../cx/ring/account/JamiAccountSummaryFragment.kt   | 13 +++++++++++++
 .../app/src/main/res/layout/frag_acc_summary.xml    |  1 +
 2 files changed, 14 insertions(+)

diff --git a/jami-android/app/src/main/java/cx/ring/account/JamiAccountSummaryFragment.kt b/jami-android/app/src/main/java/cx/ring/account/JamiAccountSummaryFragment.kt
index fe05d8fb9..225f4397b 100644
--- a/jami-android/app/src/main/java/cx/ring/account/JamiAccountSummaryFragment.kt
+++ b/jami-android/app/src/main/java/cx/ring/account/JamiAccountSummaryFragment.kt
@@ -32,6 +32,8 @@ import android.util.Log
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.view.inputmethod.EditorInfo
+import android.view.inputmethod.InputMethodManager
 import android.widget.*
 import androidx.activity.OnBackPressedCallback
 import androidx.activity.result.PickVisualMediaRequest
@@ -249,6 +251,17 @@ class JamiAccountSummaryFragment :
                 QRCodeFragment.newInstance(QRCodeFragment.INDEX_CODE)
                     .show(parentFragmentManager, QRCodeFragment.TAG)
             }
+            binding.username.setOnEditorActionListener { _, actionId, _ ->
+                if (actionId == EditorInfo.IME_ACTION_DONE) {
+                    val inputMethodManager = requireContext()
+                        .getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager
+                    inputMethodManager.hideSoftInputFromWindow(
+                        requireActivity().currentFocus!!.windowToken, 0
+                    )
+                    binding.username.clearFocus()
+                }
+                false
+            }
             binding.username.onFocusChangeListener = View.OnFocusChangeListener { _, hasFocus: Boolean ->
                 val name = binding.username.text
                 if (!hasFocus) {
diff --git a/jami-android/app/src/main/res/layout/frag_acc_summary.xml b/jami-android/app/src/main/res/layout/frag_acc_summary.xml
index 103f3b22d..c5e101bd7 100644
--- a/jami-android/app/src/main/res/layout/frag_acc_summary.xml
+++ b/jami-android/app/src/main/res/layout/frag_acc_summary.xml
@@ -116,6 +116,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
                         android:layout_height="wrap_content"
                         android:inputType="textPersonName"
                         android:maxLines="1"
+                        android:imeOptions="actionDone"
                         android:singleLine="true"
                         android:textColor="@color/text_color"
                         android:textStyle="bold" />
-- 
GitLab