library: cover starred/downloaded shuffle in tests, dedupe list predicate

This commit is contained in:
austinried
2026-10-09 09:15:36 +00:00
parent 0bdac8fa22
commit adabe21d63
3 changed files with 52 additions and 7 deletions
@@ -101,8 +101,9 @@ fun ScrollToTopOnRequest(
) {
var previous by remember { mutableStateOf(request) }
LaunchedEffect(request) {
if (request != null && previous != null && request != previous) state.animateScrollToItem(0)
val stale = previous
previous = request
if (request != null && stale != null && request != stale) state.animateScrollToItem(0)
}
}
@@ -113,7 +114,8 @@ fun ScrollToTopOnRequest(
) {
var previous by remember { mutableStateOf(request) }
LaunchedEffect(request) {
if (request != null && previous != null && request != previous) state.animateScrollToItem(0)
val stale = previous
previous = request
if (request != null && stale != null && request != stale) state.animateScrollToItem(0)
}
}
@@ -148,10 +148,6 @@ fun HomeListScreen(
val resources = LocalResources.current
val scope = rememberCoroutineScope()
val songListState = rememberLazyListState()
val isSongList =
request.downloaded == OfflineListKind.Songs ||
request.section == HomeSection.RecentlyStarredSongs ||
request.genre != null
Scaffold(
modifier = modifier,
topBar = {
@@ -163,7 +159,7 @@ fun HomeListScreen(
}
},
modifier =
if (isSongList) {
if (onShuffle != null) {
Modifier.clickable(onClickLabel = stringResource(R.string.scroll_to_top)) {
scope.launch { songListState.animateScrollToItem(0) }
}