summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDirk Sierd de Vries <contact@lecapuchon.nl>2026-08-11 05:48:32 +0200
committerDirk Sierd de Vries <contact@lecapuchon.nl>2026-08-11 05:48:32 +0200
commit056f2cc89b6489b19d9f10fb7c11c4db0ee68bb8 (patch)
treecbb0727014f288a225dfb4522261e1059c08044f
parentdc5990110e1598fd41170b069ff2b6f1cbad533e (diff)
downloadSidePhOnelauncher-056f2cc89b6489b19d9f10fb7c11c4db0ee68bb8.tar.gz
SidePhOnelauncher-056f2cc89b6489b19d9f10fb7c11c4db0ee68bb8.tar.bz2
SidePhOnelauncher-056f2cc89b6489b19d9f10fb7c11c4db0ee68bb8.zip
Fix IME dismissal when leaving app drawer search
-rw-r--r--app/src/main/java/app/sidephonelauncher/helper/Extensions.kt6
-rw-r--r--app/src/main/java/app/sidephonelauncher/ui/AppDrawerFragment.kt7
2 files changed, 12 insertions, 1 deletions
diff --git a/app/src/main/java/app/sidephonelauncher/helper/Extensions.kt b/app/src/main/java/app/sidephonelauncher/helper/Extensions.kt
index 9c68b28..a63f54e 100644
--- a/app/src/main/java/app/sidephonelauncher/helper/Extensions.kt
+++ b/app/src/main/java/app/sidephonelauncher/helper/Extensions.kt
@@ -19,6 +19,8 @@ import android.view.View
import android.view.WindowManager
import android.view.inputmethod.InputMethodManager
import androidx.annotation.RequiresApi
+import androidx.core.view.ViewCompat
+import androidx.core.view.WindowInsetsCompat
import app.sidephonelauncher.BuildConfig
import app.sidephonelauncher.R
import app.sidephonelauncher.data.Constants
@@ -26,9 +28,11 @@ import java.util.Calendar
import java.util.Locale
fun View.hideKeyboard() {
- this.clearFocus()
+ clearFocus()
+ ViewCompat.getWindowInsetsController(this)?.hide(WindowInsetsCompat.Type.ime())
val imm = context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
imm.hideSoftInputFromWindow(windowToken, 0)
+ post { rootView?.requestApplyInsets() }
}
fun View.showKeyboard(show: Boolean = true) {
diff --git a/app/src/main/java/app/sidephonelauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/sidephonelauncher/ui/AppDrawerFragment.kt
index c665adf..6a08c70 100644
--- a/app/src/main/java/app/sidephonelauncher/ui/AppDrawerFragment.kt
+++ b/app/src/main/java/app/sidephonelauncher/ui/AppDrawerFragment.kt
@@ -376,10 +376,17 @@ class AppDrawerFragment : Fragment() {
}.takeIf { it >= 0 } ?: RecyclerView.NO_POSITION
}
+ private fun dismissSearchInput() {
+ (searchTextView ?: binding.search).hideKeyboard()
+ searchTextView?.clearFocus()
+ binding.search.clearFocus()
+ }
+
private fun focusFirstLaunchableItem(): Boolean {
val position = findFirstLaunchablePosition()
if (position == RecyclerView.NO_POSITION) return false
+ dismissSearchInput()
binding.recyclerView.requestFocus()
binding.recyclerView.scrollToPosition(position)
binding.recyclerView.post {