[Android] Playlist: fix delete in search
    Duncan McNamara 
    git at videolan.org
       
    Tue Aug 30 06:25:42 UTC 2022
    
    
  
vlc-android | branch: master | Duncan McNamara <dcn.mcnamara at gmail.com> | Tue Aug 16 15:51:41 2022 +0200| [6d9b81d1a7e007a67da01fb4856147b6278501d2] | committer: Nicolas Pomepuy
Playlist: fix delete in search
To delete a playlist track requires it's position in the playlist.
When deleting from results of a search it will use the position in the
search results for deletion, and not the position in the playlist,
deleting the wrong track. This just get's the index in the playlist
tracks from media before deleting.
Fixes #2652
> https://code.videolan.org/videolan/vlc-android/commit/6d9b81d1a7e007a67da01fb4856147b6278501d2
---
 .../vlc-android/src/org/videolan/vlc/gui/HeaderMediaListActivity.kt  | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/HeaderMediaListActivity.kt b/application/vlc-android/src/org/videolan/vlc/gui/HeaderMediaListActivity.kt
index 85b59146b..d421ba0b8 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/HeaderMediaListActivity.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/HeaderMediaListActivity.kt
@@ -476,8 +476,9 @@ open class HeaderMediaListActivity : AudioPlayerContainerActivity(), IEventsHand
             val tracks = withContext(Dispatchers.IO) { playlist.tracks }
             withContext(Dispatchers.IO) {
                 for ((index, playlistIndex) in indexes.sortedBy { it }.withIndex()) {
-                    itemsRemoved[playlistIndex] = tracks[playlistIndex].id
-                    playlist.remove(playlistIndex - index)
+                    val trueIndex = viewModel.playlist.tracks.indexOf(list[index])
+                    itemsRemoved[trueIndex] = tracks[playlistIndex].id
+                    playlist.remove(trueIndex)
                 }
             }
             var removedMessage = if (indexes.size>1) getString(R.string.removed_from_playlist_anonymous) else getString(R.string.remove_playlist_item,list.first().title)
    
    
More information about the Android
mailing list