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,