From 3bea7f01ef974e5c4e119f59cb5c02b46e1dc747 Mon Sep 17 00:00:00 2001 From: Blatzar <46196380+Blatzar@users.noreply.github.com> Date: Sun, 25 Sep 2022 00:21:58 +0200 Subject: [PATCH] Probable fix for Fire TV home provider categories selection --- .../lagradost/cloudstream3/ui/home/HomeFragment.kt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/home/HomeFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/home/HomeFragment.kt index 0071ab49..11318ce6 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/home/HomeFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/home/HomeFragment.kt @@ -352,11 +352,25 @@ class HomeFragment : Fragment() { arrayAdapter.notifyDataSetChanged() } + /** + * Since fire tv is fucked we need to manually define the focus layout. + * Since visible buttons are only known in runtime this is required. + **/ + var lastButton: MaterialButton? = null + for ((button, validTypes) in pairList) { val isValid = validAPIs.any { api -> validTypes.any { api.supportedTypes.contains(it) } } button?.isVisible = isValid if (isValid) { + + // Set focus navigation + button?.let { currentButton -> + lastButton?.nextFocusRightId = currentButton.id + lastButton?.id?.let { currentButton.nextFocusLeftId = it } + lastButton = currentButton + } + fun buttonContains(): Boolean { return preSelectedTypes.any { validTypes.contains(it) } }