Keep Shuffle status when selecting song

This commit is contained in:
tomaThomas 2024-11-30 12:58:15 +01:00
parent 6752ae2afa
commit c4ec9d03da
No known key found for this signature in database
GPG key ID: DEE963DC84059108
2 changed files with 12 additions and 11 deletions

View file

@ -216,7 +216,7 @@ open class SongAdapter(
if (isInQuickSelectMode) {
toggleChecked(layoutPosition)
} else {
MusicPlayerRemote.openQueue(dataSet, layoutPosition, true)
MusicPlayerRemote.openQueueKeepShuffleMode(dataSet, layoutPosition, true)
}
}

View file

@ -211,15 +211,7 @@ object MusicPlayerRemote : KoinComponent {
*/
@JvmStatic
fun openQueue(queue: List<Song>, startPosition: Int, startPlaying: Boolean) {
if (!tryToHandleOpenPlayingQueue(
queue,
startPosition,
startPlaying
) && musicService != null
) {
musicService?.openQueue(queue, startPosition, startPlaying)
setShuffleMode(MusicService.SHUFFLE_MODE_NONE)
}
doOpenQueue(queue, startPosition, startPlaying, MusicService.SHUFFLE_MODE_NONE)
}
@JvmStatic
@ -229,6 +221,15 @@ object MusicPlayerRemote : KoinComponent {
startPosition = Random().nextInt(queue.size)
}
doOpenQueue(queue, startPosition, startPlaying, MusicService.SHUFFLE_MODE_SHUFFLE)
}
@JvmStatic
fun openQueueKeepShuffleMode(queue: List<Song>, startPosition: Int, startPlaying: Boolean) {
doOpenQueue(queue, startPosition, startPlaying, shuffleMode)
}
private fun doOpenQueue(queue: List<Song>, startPosition: Int, startPlaying: Boolean, shuffleMode: Int) {
if (!tryToHandleOpenPlayingQueue(
queue,
startPosition,
@ -236,7 +237,7 @@ object MusicPlayerRemote : KoinComponent {
) && musicService != null
) {
musicService?.openQueue(queue, startPosition, startPlaying)
setShuffleMode(MusicService.SHUFFLE_MODE_SHUFFLE)
setShuffleMode(shuffleMode)
}
}