diff --git a/app/src/main/kotlin/com/subtracks/playback/PlaybackController.kt b/app/src/main/kotlin/com/subtracks/playback/PlaybackController.kt index 03009b6b..bbd97f71 100644 --- a/app/src/main/kotlin/com/subtracks/playback/PlaybackController.kt +++ b/app/src/main/kotlin/com/subtracks/playback/PlaybackController.kt @@ -522,6 +522,7 @@ class PlaybackController( start } queueRepository.setCursor(position) + this.snapshot = queueRepository.snapshot() loadWindow(position, autoplay = true) } diff --git a/app/src/test/kotlin/com/subtracks/playback/PlaybackControllerTest.kt b/app/src/test/kotlin/com/subtracks/playback/PlaybackControllerTest.kt index cd679bf1..cb0464c2 100644 --- a/app/src/test/kotlin/com/subtracks/playback/PlaybackControllerTest.kt +++ b/app/src/test/kotlin/com/subtracks/playback/PlaybackControllerTest.kt @@ -747,6 +747,29 @@ class PlaybackControllerTest { } } + @Test + fun tappingASongWhileShuffledPlaysThatSong() { + seedAlbum(5, sourceId = 1) + + controller.playAlbum(1, "al1", 0) + await { + controller.state.value.item + ?.id == "s1" + } + + controller.toggleShuffle() + await { controller.state.value.shuffle } + + controller.playAlbum(1, "al1", 3) + await { + controller.state.value.item + ?.id == "s4" + } + + assertEquals(0L, controller.state.value.position) + assertEquals("s4", handle.items.first().id) + } + private fun seedAlbum( count: Int, sourceId: Long,