From bacfa5bb2adbd8ed33da499478d2be04270e9882 Mon Sep 17 00:00:00 2001 From: Shreyas Patil Date: Tue, 31 Dec 2024 20:33:40 +0530 Subject: [PATCH] Fix: Delete song from playlist --- .../brainzplayer/BrainzPlayerBackDropScreen.kt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/org/listenbrainz/android/ui/screens/brainzplayer/BrainzPlayerBackDropScreen.kt b/app/src/main/java/org/listenbrainz/android/ui/screens/brainzplayer/BrainzPlayerBackDropScreen.kt index 16545cdd..2e8ef071 100644 --- a/app/src/main/java/org/listenbrainz/android/ui/screens/brainzplayer/BrainzPlayerBackDropScreen.kt +++ b/app/src/main/java/org/listenbrainz/android/ui/screens/brainzplayer/BrainzPlayerBackDropScreen.kt @@ -421,17 +421,17 @@ fun PlayerScreen( Spacer(modifier = Modifier.weight(1f)) Button( onClick = { - checkedSongs.forEach { song -> - brainzPlayerViewModel.appPreferences.currentPlayable?.songs?.toMutableList() - ?.remove(song) + val currentPlayable = brainzPlayerViewModel.appPreferences.currentPlayable + val updatedSongs = currentPlayable?.songs?.toMutableList()?.apply { + removeAll(checkedSongs) } - brainzPlayerViewModel.appPreferences.currentPlayable?.songs?.let { + updatedSongs?.let { brainzPlayerViewModel.changePlayable( it, PlayableType.ALL_SONGS, - brainzPlayerViewModel.appPreferences.currentPlayable?.id ?: 0, - brainzPlayerViewModel.appPreferences.currentPlayable?.songs?.indexOfFirst { it.mediaID == currentlyPlayingSong.mediaID } - ?: 0, brainzPlayerViewModel.songCurrentPosition.value + currentPlayable.id, + it.indexOfFirst { song -> song.mediaID == currentlyPlayingSong.mediaID }.coerceAtLeast(0), + brainzPlayerViewModel.songCurrentPosition.value ) } brainzPlayerViewModel.queueChanged(