From dfb828f447dea2bb02dee456057dd7e8fdb8971a Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Mon, 9 Feb 2026 10:13:23 -0300 Subject: [PATCH] Scroll MyApps list to top if new updates were added --- app/src/main/kotlin/org/fdroid/ui/apps/MyAppsList.kt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/src/main/kotlin/org/fdroid/ui/apps/MyAppsList.kt b/app/src/main/kotlin/org/fdroid/ui/apps/MyAppsList.kt index b02515628..0001beced 100644 --- a/app/src/main/kotlin/org/fdroid/ui/apps/MyAppsList.kt +++ b/app/src/main/kotlin/org/fdroid/ui/apps/MyAppsList.kt @@ -20,7 +20,9 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableIntStateOf import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.runtime.setValue @@ -50,6 +52,16 @@ fun MyAppsList( val installingApps = myAppsInfo.model.installingApps val appsWithIssue = myAppsInfo.model.appsWithIssue val installedApps = myAppsInfo.model.installedApps + // scroll to top if new updatable apps were added + var previousNumUpdates by remember { mutableIntStateOf(0) } + LaunchedEffect(updatableApps) { + if (updatableApps != null && updatableApps.isNotEmpty()) { + if (updatableApps.size > previousNumUpdates) { + lazyListState.animateScrollToItem(0) + } + previousNumUpdates = updatableApps.size + } + } // allow us to hide "update all" button to avoid user pressing it twice var showUpdateAllButton by remember(updatableApps) { mutableStateOf(true)