From 5f9f98fb9e496ae7b8d4f9287405c7385bcb1aa9 Mon Sep 17 00:00:00 2001 From: Kingkor Roy Tirtho Date: Mon, 20 Jul 2026 21:58:52 +0600 Subject: [PATCH] feat: update skipToNext and skipToPrevious methods in AudioPlayer for improved media item management --- .../krtirtho/spotube/core/audioplayer/AudioPlayer.jvm.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/composeApp/src/jvmMain/kotlin/dev/krtirtho/spotube/core/audioplayer/AudioPlayer.jvm.kt b/composeApp/src/jvmMain/kotlin/dev/krtirtho/spotube/core/audioplayer/AudioPlayer.jvm.kt index 3dd640b0..ab831e6d 100644 --- a/composeApp/src/jvmMain/kotlin/dev/krtirtho/spotube/core/audioplayer/AudioPlayer.jvm.kt +++ b/composeApp/src/jvmMain/kotlin/dev/krtirtho/spotube/core/audioplayer/AudioPlayer.jvm.kt @@ -466,8 +466,10 @@ actual class AudioPlayer actual constructor(context: Any) : AudioPlayerInterface if (disposed || currentPlaylist.isEmpty()) return val nextIndex = (currentIndex + 1).coerceAtMost(currentPlaylist.lastIndex) logger.d { "skipToNext: currentIndex=$currentIndex, targetIndex=$nextIndex" } + currentIndex = nextIndex + _currentMediaItem.value = currentPlaylist[nextIndex] pendingNextIndex = nextIndex - mediaListPlayer.controls().playNext() + mediaListPlayer.controls().play(nextIndex) } } @@ -476,8 +478,10 @@ actual class AudioPlayer actual constructor(context: Any) : AudioPlayerInterface if (disposed || currentPlaylist.isEmpty()) return val prevIndex = (currentIndex - 1).coerceAtLeast(0) logger.d { "skipToPrevious: currentIndex=$currentIndex, targetIndex=$prevIndex" } + currentIndex = prevIndex + _currentMediaItem.value = currentPlaylist[prevIndex] pendingNextIndex = prevIndex - mediaListPlayer.controls().playPrevious() + mediaListPlayer.controls().play(prevIndex) } }