From 8b9b0ddec842757057649e1c5e55337b9cb90f69 Mon Sep 17 00:00:00 2001 From: Damontecres Date: Mon, 11 May 2026 17:48:38 -0400 Subject: [PATCH] Fix two home row focus bugs (#1376) ## Description 1. Fixes when moving from nav drawer to home page content, focus would sometimes move up a row 2. Fixes when moving up/down between rows, focus would sometimes move to the later card (usually the last visible) The second above is fixed by downgrading `tv-material` to `1.0.1-alpha01`. Switching to [`1.0.1-beta01`](https://developer.android.com/jetpack/androidx/releases/tv#tv-material-1.1.0-beta01) or newer causes the bug. Not clear if its a bug in the library or Wholphin though. ### Related issues Fixes #1359 ### Testing Emulator ## Screenshots N/A ## AI or LLM usage None --- .../github/damontecres/wholphin/ui/main/HomePage.kt | 11 ++++++++++- gradle/libs.versions.toml | 2 +- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/github/damontecres/wholphin/ui/main/HomePage.kt b/app/src/main/java/com/github/damontecres/wholphin/ui/main/HomePage.kt index 1e58a1d6..a3b32382 100644 --- a/app/src/main/java/com/github/damontecres/wholphin/ui/main/HomePage.kt +++ b/app/src/main/java/com/github/damontecres/wholphin/ui/main/HomePage.kt @@ -31,6 +31,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester +import androidx.compose.ui.focus.focusProperties import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.focus.focusRestorer import androidx.compose.ui.focus.onFocusChanged @@ -307,7 +308,15 @@ fun HomePageContent( focusedItem?.let { onUpdateBackdrop.invoke(it) } } Box(modifier = modifier) { - Column(modifier = Modifier.fillMaxSize()) { + Column( + modifier = + Modifier + .focusProperties { + onEnter = { + rowFocusRequesters.getOrNull(currentPosition.row)?.tryRequestFocus() + } + }.fillMaxSize(), + ) { headerComposable.invoke(focusedItem) val density = LocalDensity.current diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 09f1cae8..eab5a055 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -21,7 +21,7 @@ programguide = "1.6.0" slf4j2Timber = "1.2" timber = "5.0.1" tvFoundation = "1.0.0" -tvMaterial = "1.1.0" +tvMaterial = "1.1.0-alpha01" lifecycleRuntimeKtx = "2.10.0" activityCompose = "1.13.0" androidx-media3 = "1.10.0"