From 2f0924678ce41d97e04f38e64ca4c85857fa12fc Mon Sep 17 00:00:00 2001 From: Rohit Verma Date: Sat, 6 Sep 2025 22:36:53 +0530 Subject: [PATCH] fix(upload): hide keyboard before navigating to Media License screen This solves keyboard opened at the License screen issue, if we proceed by pressing next at the Upload Categories screen when the keyboard is opened --- .../fr/free/nrw/commons/upload/UploadActivity.kt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.kt b/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.kt index 74597bc14..c2bed5fff 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.kt +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.kt @@ -13,6 +13,7 @@ import android.os.Build.VERSION_CODES import android.os.Bundle import android.provider.Settings import android.view.View +import android.view.inputmethod.InputMethodManager import android.widget.CheckBox import androidx.activity.OnBackPressedCallback import androidx.appcompat.app.AlertDialog @@ -805,6 +806,19 @@ class UploadActivity : BaseActivity(), UploadContract.View, UploadBaseFragment.C override fun onNextButtonClicked(index: Int) { if (index < fragments!!.size - 1) { + // Hide the keyboard before navigating to Media License screen + val isUploadCategoriesFragment = fragments!!.getOrNull(index)?.let { + it is UploadCategoriesFragment + } ?: false + if (isUploadCategoriesFragment) { + val inputMethodManager = getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager + currentFocus?.let { focusedView -> + inputMethodManager.hideSoftInputFromWindow( + focusedView.windowToken, + InputMethodManager.HIDE_NOT_ALWAYS + ) + } + } binding.vpUpload.setCurrentItem(index + 1, false) fragments!![index + 1].onBecameVisible() (binding.rvThumbnails.layoutManager as LinearLayoutManager)