diff options
| author | Dirk Sierd de Vries <contact@lecapuchon.nl> | 2026-08-15 23:22:11 +0200 |
|---|---|---|
| committer | Dirk Sierd de Vries <contact@lecapuchon.nl> | 2026-08-15 23:22:11 +0200 |
| commit | 33b87f43d1543744d346d0d12629605f2a551b2e (patch) | |
| tree | fcadb938c2f11750d0f874eaed3ed8a48d88cf00 | |
| parent | 4f7196eb9cdfe42b36c83277a9c818270879e18e (diff) | |
| download | SidePhOnelauncher-33b87f43d1543744d346d0d12629605f2a551b2e.tar.gz SidePhOnelauncher-33b87f43d1543744d346d0d12629605f2a551b2e.tar.bz2 SidePhOnelauncher-33b87f43d1543744d346d0d12629605f2a551b2e.zip | |
Prevent app drawer focus flash during navigation
| -rw-r--r-- | app/src/main/java/app/sidephonelauncher/ui/AppDrawerFragment.kt | 10 |
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) + } } } |
