From 686638a9184f9af212e954296213a43c1340036b Mon Sep 17 00:00:00 2001 From: G1org1owo <77230371+G1org1owo@users.noreply.github.com> Date: Wed, 19 Nov 2025 13:08:31 +0100 Subject: [PATCH] Fix state getting reassigned incorrectly and check on wrong index --- lib/provider/audio_player/audio_player.dart | 17 +++-------------- 1 file changed, 3 insertions(+), 14 deletions(-) diff --git a/lib/provider/audio_player/audio_player.dart b/lib/provider/audio_player/audio_player.dart index 23912b3c..e590825a 100644 --- a/lib/provider/audio_player/audio_player.dart +++ b/lib/provider/audio_player/audio_player.dart @@ -230,21 +230,10 @@ class AudioPlayerNotifier extends Notifier { .filter(tracks) .toList(); - final remainingTracks = state.tracks.where( - (track) => - allowDuplicates || - !addableTracks.any((element) => _compareTracks(element, track)) - ) - .toList(); - - state = state.copyWith( - tracks: [...addableTracks, ...remainingTracks], - ); - for (int i = 0; i < addableTracks.length; i++) { final track = addableTracks.elementAt(i); - final (currentIndex, _) = remainingTracks + final (currentTrackIndex, _) = state.tracks .indexed .cast<(int, SpotubeTrackObject?)>() .firstWhere( @@ -257,13 +246,13 @@ class AudioPlayerNotifier extends Notifier { final newIndex = max(state.currentIndex, 0) + i + 1; - if (allowDuplicates || newIndex < 0) { + if (allowDuplicates || currentTrackIndex < 0) { await audioPlayer.addTrackAt( SpotubeMedia(track), newIndex ); } else { - await audioPlayer.moveTrack(currentIndex, newIndex); + await audioPlayer.moveTrack(currentTrackIndex, newIndex); } }