diff options
| author | Dirk Sierd de Vries <contact@lecapuchon.nl> | 2026-08-13 01:13:05 +0200 |
|---|---|---|
| committer | Dirk Sierd de Vries <contact@lecapuchon.nl> | 2026-08-13 01:13:05 +0200 |
| commit | 0af2fa15bb853b1fae80cd9d852e1521beec64c5 (patch) | |
| tree | a294647a31f3cb9468d9913b55c3781a3cc07abd | |
| parent | 24cead725ddb0d601516399398d634cbfda0dec1 (diff) | |
| download | SidePhOnelauncher-0af2fa15bb853b1fae80cd9d852e1521beec64c5.tar.gz SidePhOnelauncher-0af2fa15bb853b1fae80cd9d852e1521beec64c5.tar.bz2 SidePhOnelauncher-0af2fa15bb853b1fae80cd9d852e1521beec64c5.zip | |
Guard home focus callbacks after view destruction
| -rw-r--r-- | app/src/main/java/app/sidephonelauncher/ui/HomeFragment.kt | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/app/src/main/java/app/sidephonelauncher/ui/HomeFragment.kt b/app/src/main/java/app/sidephonelauncher/ui/HomeFragment.kt index c687e63..d381a74 100644 --- a/app/src/main/java/app/sidephonelauncher/ui/HomeFragment.kt +++ b/app/src/main/java/app/sidephonelauncher/ui/HomeFragment.kt @@ -254,6 +254,7 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener } fun shouldHandleUnfocusedDpadKeyEvent(): Boolean { + val binding = _binding ?: return false val focusedView = activity?.currentFocus return focusedView == null || focusedView == binding.mainLayout @@ -292,6 +293,7 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener } private fun handleHomeKeyEvent(keyCode: Int, event: KeyEvent): Boolean { + val binding = _binding ?: return false val visibleApps = getVisibleHomeApps() if (activity?.currentFocus == binding.mainLayout) { @@ -385,6 +387,7 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener } fun ensureHomeFocus(): Boolean { + if (_binding == null) return false val target = getPreferredHomeFocusTarget() ?: return false val focusedView = activity?.currentFocus if (focusedView == target && target.hasFocus()) return true @@ -424,6 +427,7 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener } private fun getPreferredHomeFocusTarget(): View? { + val binding = _binding ?: return null val firstVisibleHomeApp = getVisibleHomeApps().firstOrNull() if (viewModel.consumeResetHomeFocusToFirstApp()) { return firstVisibleHomeApp ?: getTopHomeHeaderTargets().firstOrNull() @@ -443,6 +447,7 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener } private fun getTopHomeHeaderTargets(): List<View> { + val binding = _binding ?: return emptyList() return buildList { if (binding.clock.isVisible) add(binding.clock) if (binding.date.isVisible) add(binding.date) @@ -454,6 +459,7 @@ class HomeFragment : Fragment(), View.OnClickListener, View.OnLongClickListener } private fun getVisibleHomeApps(): List<View> { + val binding = _binding ?: return emptyList() return listOf( binding.homeApp1, binding.homeApp2, |
