diff options
| author | Dirk Sierd de Vries <contact@lecapuchon.nl> | 2026-08-11 05:48:32 +0200 |
|---|---|---|
| committer | Dirk Sierd de Vries <contact@lecapuchon.nl> | 2026-08-11 05:48:32 +0200 |
| commit | 056f2cc89b6489b19d9f10fb7c11c4db0ee68bb8 (patch) | |
| tree | cbb0727014f288a225dfb4522261e1059c08044f | |
| parent | dc5990110e1598fd41170b069ff2b6f1cbad533e (diff) | |
| download | SidePhOnelauncher-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.kt | 6 | ||||
| -rw-r--r-- | app/src/main/java/app/sidephonelauncher/ui/AppDrawerFragment.kt | 7 |
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 { |
