From fa9786de046ebf17503bd3474f9415ee6696f4e6 Mon Sep 17 00:00:00 2001 From: Fabian Zobrist Date: Wed, 27 Sep 2023 18:51:26 +0200 Subject: [PATCH] Scroll to top on game activated. --- .../tichucounter/ui/history/HistoryView.kt | 20 ++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/me/zobrist/tichucounter/ui/history/HistoryView.kt b/app/src/main/java/me/zobrist/tichucounter/ui/history/HistoryView.kt index 17cf750..c7fb1b1 100644 --- a/app/src/main/java/me/zobrist/tichucounter/ui/history/HistoryView.kt +++ b/app/src/main/java/me/zobrist/tichucounter/ui/history/HistoryView.kt @@ -53,6 +53,8 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import kotlinx.coroutines.coroutineScope +import kotlinx.coroutines.delay import kotlinx.coroutines.launch import me.zobrist.tichucounter.R import me.zobrist.tichucounter.data.GameWithScores @@ -159,23 +161,31 @@ fun HistoryList( onDeleteAllClicked: () -> Unit, lazyListState: LazyListState = LazyListState(), ) { + val scope = rememberCoroutineScope() + Row { LazyColumn(state = lazyListState) { items( items = games, - key = { it.hashCode() }) { - if (it.game.active) { + key = { it.game.uid }) { item -> + if (item.game.active) { HistoryListItem( - it, + item, Modifier .animateItemPlacement() .padding(2.dp) ) } else { DismissibleHistoryListItem( - it, + item, Modifier.animateItemPlacement(), - onOpenClicked, + { + onOpenClicked(it) + scope.launch { + delay(100) + lazyListState.animateScrollToItem(0) + } + }, onDeleteClicked ) }