playback: fix remember shuffle regression

Fix a regression that broke the Remember Shuffle option.
This commit is contained in:
OxygenCobalt 2022-06-20 16:10:23 -06:00
parent b041fe68d0
commit 787a0df595
No known key found for this signature in database
GPG key ID: 37DBE3621FE9AD47
3 changed files with 13 additions and 4 deletions

View file

@ -91,8 +91,7 @@ class PlaybackViewModel(application: Application) :
/** Play a [song] with the [mode] specified, */
fun play(song: Song, mode: PlaybackMode) {
playbackManager.play(
song, settings.keepShuffle && playbackManager.isPlaying, mode, settings)
playbackManager.play(song, mode, settings)
}
/**

View file

@ -148,7 +148,7 @@ class PlaybackStateManager private constructor() {
* Play a [song].
* @param playbackMode The [PlaybackMode] to construct the queue off of.
*/
fun play(song: Song, shuffle: Boolean, playbackMode: PlaybackMode, settings: Settings) {
fun play(song: Song, playbackMode: PlaybackMode, settings: Settings) {
val library = musicStore.library ?: return
synchronized(this) {
@ -160,7 +160,7 @@ class PlaybackStateManager private constructor() {
PlaybackMode.IN_GENRE -> song.genre
}
applyNewQueue(library, settings, shuffle, song)
applyNewQueue(library, settings, settings.keepShuffle && isShuffled, song)
seekTo(0)
notifyNewPlayback()
notifyShuffledChanged()

View file

@ -169,17 +169,27 @@ fun Fragment.launch(
viewLifecycleOwner.lifecycleScope.launch { viewLifecycleOwner.repeatOnLifecycle(state, block) }
}
/**
* Shortcut to generate a AndroidViewModel [T] without having to specify the bloated factory syntax.
*/
inline fun <reified T : AndroidViewModel> Fragment.androidViewModels() =
viewModels<T> { ViewModelProvider.AndroidViewModelFactory(requireActivity().application) }
/**
* Shortcut to generate a AndroidViewModel [T] without having to specify the bloated factory syntax.
*/
inline fun <reified T : AndroidViewModel> AppCompatActivity.androidViewModels() =
viewModels<T> { ViewModelProvider.AndroidViewModelFactory(application) }
/**
* Shortcut to generate a AndroidViewModel [T] without having to specify the bloated factory syntax.
*/
inline fun <reified T : AndroidViewModel> Fragment.androidActivityViewModels() =
activityViewModels<T> {
ViewModelProvider.AndroidViewModelFactory(requireActivity().application)
}
/** Shortcut to get the [Application] from an [AndroidViewModel] */
val AndroidViewModel.application: Application
get() = getApplication()