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

Commit

Permalink
feat: remember the latest used sort order for local music
Browse files Browse the repository at this point in the history
  • Loading branch information
Bnyro committed Nov 20, 2023
1 parent 903946b commit 441b211
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,18 @@ import app.suhasdissa.vibeyou.backend.data.Artist
import app.suhasdissa.vibeyou.backend.data.Song
import app.suhasdissa.vibeyou.backend.repository.LocalMusicRepository
import app.suhasdissa.vibeyou.ui.dialogs.SortOrder
import app.suhasdissa.vibeyou.utils.Pref
import kotlinx.coroutines.launch

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

var songsSortOrder = SortOrder.Alphabetic
var reverseSongs = false
var songsSortOrder = Pref.sharedPreferences.getString(Pref.latestSongsSortOrderKey, null)?.let {
runCatching { SortOrder.valueOf(it) }.getOrNull()
} ?: SortOrder.Alphabetic
var reverseSongs = Pref.sharedPreferences.getBoolean(Pref.latestReverseSongsPrefKey, false)

init {
viewModelScope.launch {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ import androidx.compose.ui.draw.clip
import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import androidx.core.content.edit
import androidx.lifecycle.viewmodel.compose.viewModel
import app.suhasdissa.vibeyou.Destination
import app.suhasdissa.vibeyou.R
Expand All @@ -46,6 +47,7 @@ import app.suhasdissa.vibeyou.ui.components.AlbumList
import app.suhasdissa.vibeyou.ui.components.ArtistList
import app.suhasdissa.vibeyou.ui.dialogs.SortOrderDialog
import app.suhasdissa.vibeyou.ui.screens.songs.SongListView
import app.suhasdissa.vibeyou.utils.Pref
import kotlinx.coroutines.launch

@OptIn(ExperimentalFoundationApi::class)
Expand Down Expand Up @@ -194,6 +196,10 @@ fun LocalMusicScreen(
localSongViewModel.songsSortOrder = sortOrder
localSongViewModel.reverseSongs = reverse
localSongViewModel.updateSongsSortOrder()
Pref.sharedPreferences.edit(true) {
putString(Pref.latestSongsSortOrderKey, sortOrder.toString())
putBoolean(Pref.latestReverseSongsPrefKey, reverse)
}
}
)
}
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/java/app/suhasdissa/vibeyou/utils/Pref.kt
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ object Pref {
const val authTokenKey = "AuthTokenKey"
const val exoCacheKey = "ExoCacheKey"
const val thumbnailColorFallbackKey = "ThumbnailColorFallbackef"
const val latestSongsSortOrderKey = "LatestSongsSortOrderKey"
const val latestReverseSongsPrefKey = "LatestReverseSongsPrefKey"

lateinit var sharedPreferences: SharedPreferences

Expand Down

0 comments on commit 441b211

Please sign in to comment.