From dd484df63672da159d3f467d43b05da3e0a22459 Mon Sep 17 00:00:00 2001 From: Honey Date: Thu, 18 Jun 2026 20:05:00 +0200 Subject: [PATCH] =?UTF-8?q?fix(android):=20album=20sort=20=E2=80=94=20scro?= =?UTF-8?q?ll=20to=20top=20on=20change,=20remove=20K=C3=BCnstler,=20defaul?= =?UTF-8?q?t=20Neueste?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- .../com/novasonic/app/ui/screen/LibraryScreen.kt | 11 +++++------ .../com/novasonic/app/viewmodel/LibraryViewModel.kt | 4 ++-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/android/app/src/main/kotlin/com/novasonic/app/ui/screen/LibraryScreen.kt b/android/app/src/main/kotlin/com/novasonic/app/ui/screen/LibraryScreen.kt index 7a509c4..535fd2e 100644 --- a/android/app/src/main/kotlin/com/novasonic/app/ui/screen/LibraryScreen.kt +++ b/android/app/src/main/kotlin/com/novasonic/app/ui/screen/LibraryScreen.kt @@ -7,6 +7,7 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.grid.GridCells import androidx.compose.foundation.lazy.grid.LazyVerticalGrid import androidx.compose.foundation.lazy.grid.items +import androidx.compose.foundation.lazy.grid.rememberLazyGridState import androidx.compose.foundation.lazy.items import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape @@ -100,7 +101,6 @@ fun LibraryScreen( AlbumSort.NEWEST -> "Neueste" AlbumSort.OLDEST -> "Älteste" AlbumSort.AZ -> "A-Z" - AlbumSort.ARTIST -> "Künstler" }, fontSize = 12.sp) }, colors = FilterChipDefaults.filterChipColors( @@ -121,14 +121,13 @@ fun LibraryScreen( compareBy { it.year ?: Int.MAX_VALUE } .thenBy { it.name.lowercase() } ) - AlbumSort.AZ -> state.albums.sortedBy { it.name.lowercase() } - AlbumSort.ARTIST -> state.albums.sortedWith( - compareBy { it.artist?.lowercase() ?: "" } - .thenBy { it.name.lowercase() } - ) + AlbumSort.AZ -> state.albums.sortedBy { it.name.lowercase() } } } + val albumGridState = rememberLazyGridState() + LaunchedEffect(state.albumSort) { albumGridState.scrollToItem(0) } LazyVerticalGrid( + state = albumGridState, columns = GridCells.Adaptive(minSize = 150.dp), contentPadding = PaddingValues(start = 16.dp, end = 16.dp, bottom = 16.dp), horizontalArrangement = Arrangement.spacedBy(12.dp), diff --git a/android/app/src/main/kotlin/com/novasonic/app/viewmodel/LibraryViewModel.kt b/android/app/src/main/kotlin/com/novasonic/app/viewmodel/LibraryViewModel.kt index 0e34b75..40d4e1c 100644 --- a/android/app/src/main/kotlin/com/novasonic/app/viewmodel/LibraryViewModel.kt +++ b/android/app/src/main/kotlin/com/novasonic/app/viewmodel/LibraryViewModel.kt @@ -12,12 +12,12 @@ import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.launch enum class LibraryTab { PLAYLISTS, ALBUMS, ARTISTS } -enum class AlbumSort { NEWEST, OLDEST, AZ, ARTIST } +enum class AlbumSort { NEWEST, OLDEST, AZ } data class LibraryUiState( val tab: LibraryTab = LibraryTab.PLAYLISTS, val albums: List = emptyList(), - val albumSort: AlbumSort = AlbumSort.AZ, + val albumSort: AlbumSort = AlbumSort.NEWEST, val artistIndexes: List = emptyList(), val playlists: List = emptyList(), val isLoading: Boolean = false,