Skip to content
This repository was archived by the owner on Aug 7, 2024. It is now read-only.

Commit 441b211

Browse files
committed
feat: remember the latest used sort order for local music
1 parent 903946b commit 441b211

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

app/src/main/java/app/suhasdissa/vibeyou/backend/viewmodel/LocalSongViewModel.kt

+5-2
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,18 @@ import app.suhasdissa.vibeyou.backend.data.Artist
1515
import app.suhasdissa.vibeyou.backend.data.Song
1616
import app.suhasdissa.vibeyou.backend.repository.LocalMusicRepository
1717
import app.suhasdissa.vibeyou.ui.dialogs.SortOrder
18+
import app.suhasdissa.vibeyou.utils.Pref
1819
import kotlinx.coroutines.launch
1920

2021
class LocalSongViewModel(private val musicRepository: LocalMusicRepository) : ViewModel() {
2122
var songs by mutableStateOf(listOf<Song>())
2223
var albums by mutableStateOf(listOf<Album>())
2324
var artists by mutableStateOf(listOf<Artist>())
2425

25-
var songsSortOrder = SortOrder.Alphabetic
26-
var reverseSongs = false
26+
var songsSortOrder = Pref.sharedPreferences.getString(Pref.latestSongsSortOrderKey, null)?.let {
27+
runCatching { SortOrder.valueOf(it) }.getOrNull()
28+
} ?: SortOrder.Alphabetic
29+
var reverseSongs = Pref.sharedPreferences.getBoolean(Pref.latestReverseSongsPrefKey, false)
2730

2831
init {
2932
viewModelScope.launch {

app/src/main/java/app/suhasdissa/vibeyou/ui/screens/music/LocalMusicScreen.kt

+6
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ import androidx.compose.ui.draw.clip
3636
import androidx.compose.ui.platform.LocalView
3737
import androidx.compose.ui.res.stringResource
3838
import androidx.compose.ui.unit.dp
39+
import androidx.core.content.edit
3940
import androidx.lifecycle.viewmodel.compose.viewModel
4041
import app.suhasdissa.vibeyou.Destination
4142
import app.suhasdissa.vibeyou.R
@@ -46,6 +47,7 @@ import app.suhasdissa.vibeyou.ui.components.AlbumList
4647
import app.suhasdissa.vibeyou.ui.components.ArtistList
4748
import app.suhasdissa.vibeyou.ui.dialogs.SortOrderDialog
4849
import app.suhasdissa.vibeyou.ui.screens.songs.SongListView
50+
import app.suhasdissa.vibeyou.utils.Pref
4951
import kotlinx.coroutines.launch
5052

5153
@OptIn(ExperimentalFoundationApi::class)
@@ -194,6 +196,10 @@ fun LocalMusicScreen(
194196
localSongViewModel.songsSortOrder = sortOrder
195197
localSongViewModel.reverseSongs = reverse
196198
localSongViewModel.updateSongsSortOrder()
199+
Pref.sharedPreferences.edit(true) {
200+
putString(Pref.latestSongsSortOrderKey, sortOrder.toString())
201+
putBoolean(Pref.latestReverseSongsPrefKey, reverse)
202+
}
197203
}
198204
)
199205
}

app/src/main/java/app/suhasdissa/vibeyou/utils/Pref.kt

+2
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ object Pref {
1111
const val authTokenKey = "AuthTokenKey"
1212
const val exoCacheKey = "ExoCacheKey"
1313
const val thumbnailColorFallbackKey = "ThumbnailColorFallbackef"
14+
const val latestSongsSortOrderKey = "LatestSongsSortOrderKey"
15+
const val latestReverseSongsPrefKey = "LatestReverseSongsPrefKey"
1416

1517
lateinit var sharedPreferences: SharedPreferences
1618

0 commit comments

Comments
 (0)