From 6a33878029fa21d3a8b9e190601b80ad3cae5b44 Mon Sep 17 00:00:00 2001 From: EierKopZA Date: Mon, 30 Mar 2026 12:44:10 +0000 Subject: [PATCH 1/3] fix: allow left navigation in watchlist grid when focus is not on sidebar --- .../com/arflix/tv/ui/screens/watchlist/WatchlistScreen.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/arflix/tv/ui/screens/watchlist/WatchlistScreen.kt b/app/src/main/kotlin/com/arflix/tv/ui/screens/watchlist/WatchlistScreen.kt index 229ef0ec4..6ae07797a 100644 --- a/app/src/main/kotlin/com/arflix/tv/ui/screens/watchlist/WatchlistScreen.kt +++ b/app/src/main/kotlin/com/arflix/tv/ui/screens/watchlist/WatchlistScreen.kt @@ -162,7 +162,8 @@ fun WatchlistScreen( } Key.DirectionLeft -> { if (!isSidebarFocused) { - true + // Let the grid handle left movement within items. + false } else { if (sidebarFocusIndex > 0) { sidebarFocusIndex = (sidebarFocusIndex - 1).coerceIn(0, maxSidebarIndex) @@ -177,6 +178,7 @@ fun WatchlistScreen( } true } else { + // Let the grid handle right movement within items. false } } From f700a331bfe64f78890804da1e2f95fe1916ae79 Mon Sep 17 00:00:00 2001 From: EierKopZA Date: Mon, 30 Mar 2026 12:59:37 +0000 Subject: [PATCH 2/3] fix: back from search results returns to sidebar instead of staying in search --- .../kotlin/com/arflix/tv/ui/screens/search/SearchScreen.kt | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/src/main/kotlin/com/arflix/tv/ui/screens/search/SearchScreen.kt b/app/src/main/kotlin/com/arflix/tv/ui/screens/search/SearchScreen.kt index 990a19969..6f230ab29 100644 --- a/app/src/main/kotlin/com/arflix/tv/ui/screens/search/SearchScreen.kt +++ b/app/src/main/kotlin/com/arflix/tv/ui/screens/search/SearchScreen.kt @@ -167,14 +167,13 @@ fun SearchScreen( when (event.key) { Key.Back, Key.Escape -> when (focusZone) { FocusZone.RESULTS -> { - if (showFilters) focusZone = FocusZone.FILTERS - else { focusZone = FocusZone.SEARCH_INPUT; searchFocusRequester.requestFocus() } + // Directly return to sidebar/topbar from results for expected back behavior + focusZone = FocusZone.SIDEBAR true } FocusZone.FILTERS -> { focusZone = FocusZone.SEARCH_INPUT; searchFocusRequester.requestFocus(); true } FocusZone.SEARCH_INPUT -> { - // If we have search results, go back to results instead of sidebar - // This fixes the issue where back from details goes to keyboard instead of results + // If we have active results, go back to results. Otherwise go to sidebar. if (activeCategories.isNotEmpty() || hasAiResults) { focusZone = FocusZone.RESULTS currentRowIndex = 0 From 5e6bcd3557e2e37a6d4721a76f9ed2ad24b9bf30 Mon Sep 17 00:00:00 2001 From: EierKopZA Date: Mon, 30 Mar 2026 13:27:32 +0000 Subject: [PATCH 3/3] fix(settings): allow navigating to DNS Provider in general settings --- .../com/arflix/tv/ui/screens/settings/SettingsScreen.kt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/com/arflix/tv/ui/screens/settings/SettingsScreen.kt b/app/src/main/kotlin/com/arflix/tv/ui/screens/settings/SettingsScreen.kt index a0af581e9..c4316bfac 100644 --- a/app/src/main/kotlin/com/arflix/tv/ui/screens/settings/SettingsScreen.kt +++ b/app/src/main/kotlin/com/arflix/tv/ui/screens/settings/SettingsScreen.kt @@ -253,7 +253,7 @@ fun SettingsScreen( if (scrollState.maxValue <= 0) return@LaunchedEffect val maxIndex = when (sectionIndex) { - 0 -> 12 // General: 13 items + 0 -> 13 // General: 14 items (includes DNS provider) 1 -> 3 // IPTV: Configure + Refresh + Delete + Stalker 2 -> uiState.catalogs.size // Catalogs 3 -> uiState.addons.size // Addons @@ -433,7 +433,7 @@ fun SettingsScreen( Zone.CONTENT -> { // Dynamic max based on current section val maxIndex = when (sectionIndex) { - 0 -> 12 // General: 13 items + 0 -> 13 // General: 14 items (includes DNS provider) 1 -> 3 // IPTV: Configure + Refresh + Delete + Stalker 2 -> uiState.catalogs.size // Catalogs: Add + N catalogs 3 -> uiState.addons.size // Addons: N addons + "Add Custom" button @@ -2290,7 +2290,7 @@ private fun GeneralSettings( title = "DNS Provider", subtitle = "Resolve API and stream requests", value = dnsProvider, - isFocused = focusedIndex == 12, + isFocused = focusedIndex == 13, onClick = onDnsProviderClick ) }