summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorDirk Sierd de Vries <contact@lecapuchon.nl>2026-08-15 23:22:11 +0200
committerDirk Sierd de Vries <contact@lecapuchon.nl>2026-08-15 23:22:11 +0200
commit33b87f43d1543744d346d0d12629605f2a551b2e (patch)
treefcadb938c2f11750d0f874eaed3ed8a48d88cf00 /app
parent4f7196eb9cdfe42b36c83277a9c818270879e18e (diff)
downloadSidePhOnelauncher-33b87f43d1543744d346d0d12629605f2a551b2e.tar.gz
SidePhOnelauncher-33b87f43d1543744d346d0d12629605f2a551b2e.tar.bz2
SidePhOnelauncher-33b87f43d1543744d346d0d12629605f2a551b2e.zip
Prevent app drawer focus flash during navigation
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/app/sidephonelauncher/ui/AppDrawerFragment.kt10
1 files changed, 6 insertions, 4 deletions
diff --git a/app/src/main/java/app/sidephonelauncher/ui/AppDrawerFragment.kt b/app/src/main/java/app/sidephonelauncher/ui/AppDrawerFragment.kt
index 4b0180e..70514ed 100644
--- a/app/src/main/java/app/sidephonelauncher/ui/AppDrawerFragment.kt
+++ b/app/src/main/java/app/sidephonelauncher/ui/AppDrawerFragment.kt
@@ -491,7 +491,6 @@ class AppDrawerFragment : Fragment() {
if (position == RecyclerView.NO_POSITION) return false
dismissSearchInput()
- binding.recyclerView.requestFocus()
focusRecyclerItem(position)
return true
}
@@ -505,7 +504,6 @@ class AppDrawerFragment : Fragment() {
return true
}
- binding.recyclerView.requestFocus()
focusRecyclerItem(targetPosition)
return true
}
@@ -526,12 +524,16 @@ class AppDrawerFragment : Fragment() {
return RecyclerView.NO_POSITION
}
- private fun focusRecyclerItem(position: Int) {
+ private fun focusRecyclerItem(position: Int, attempt: Int = 0) {
binding.recyclerView.scrollToPosition(position)
binding.recyclerView.post {
val holder = binding.recyclerView.findViewHolderForAdapterPosition(position)
val itemView = holder?.itemView?.findViewById<View>(R.id.appRow) ?: holder?.itemView
- itemView?.requestFocus()
+ if (itemView != null) {
+ itemView.requestFocus()
+ } else if (attempt < 3) {
+ focusRecyclerItem(position, attempt + 1)
+ }
}
}