[Android] Fix items thumbnails in the save playlist dialog

Nicolas Pomepuy git at videolan.org
Fri Jan 31 10:14:22 UTC 2025


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Mon Jan 27 14:38:55 2025 +0100| [e1519eb90068b20dfcd2c6be29e306216f68de43] | committer: Nicolas Pomepuy

Fix items thumbnails in the save playlist dialog

> https://code.videolan.org/videolan/vlc-android/commit/e1519eb90068b20dfcd2c6be29e306216f68de43
---

 .../vlc-android/src/org/videolan/vlc/gui/SimpleAdapter.kt    |  6 ++++++
 .../src/org/videolan/vlc/gui/dialogs/SavePlaylistDialog.kt   | 12 ++++++++----
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/application/vlc-android/src/org/videolan/vlc/gui/SimpleAdapter.kt b/application/vlc-android/src/org/videolan/vlc/gui/SimpleAdapter.kt
index 03f904b3d5..f9869eae28 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/SimpleAdapter.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/SimpleAdapter.kt
@@ -1,5 +1,7 @@
 package org.videolan.vlc.gui
 
+import android.graphics.drawable.BitmapDrawable
+import android.graphics.drawable.Drawable
 import android.view.LayoutInflater
 import android.view.ViewGroup
 import androidx.recyclerview.widget.DiffUtil
@@ -24,6 +26,7 @@ class SimpleAdapter(val handler: ClickHandler) : ListAdapter<MediaLibraryItem, S
     MultiSelectAdapter<MediaLibraryItem> {
     val multiSelectHelper: MultiSelectHelper<MediaLibraryItem> = MultiSelectHelper(this, UPDATE_SELECTION)
 
+    var defaultCover:BitmapDrawable? = null
 
     interface ClickHandler {
         fun onClick(item: MediaLibraryItem, position: Int)
@@ -45,6 +48,9 @@ class SimpleAdapter(val handler: ClickHandler) : ListAdapter<MediaLibraryItem, S
         (getItem(position) as? DummyItem)?.let {
             holder.binding.cover =  getDummyItemIcon(holder.itemView.context, it)
         }
+        if (defaultCover != null) {
+            holder.binding.cover = defaultCover
+        }
     }
 
     fun isEmpty() = itemCount == 0
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/dialogs/SavePlaylistDialog.kt b/application/vlc-android/src/org/videolan/vlc/gui/dialogs/SavePlaylistDialog.kt
index e3cfe976e3..ace18af2b5 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/dialogs/SavePlaylistDialog.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/dialogs/SavePlaylistDialog.kt
@@ -41,9 +41,13 @@ import org.videolan.medialibrary.interfaces.Medialibrary
 import org.videolan.medialibrary.interfaces.media.MediaWrapper
 import org.videolan.medialibrary.interfaces.media.Playlist
 import org.videolan.medialibrary.media.MediaLibraryItem
-import org.videolan.resources.util.parcelable
 import org.videolan.resources.util.parcelableArray
-import org.videolan.tools.*
+import org.videolan.tools.AppScope
+import org.videolan.tools.CoroutineContextProvider
+import org.videolan.tools.DependencyProvider
+import org.videolan.tools.PLAYLIST_REPLACE
+import org.videolan.tools.Settings
+import org.videolan.tools.putSingle
 import org.videolan.vlc.R
 import org.videolan.vlc.databinding.DialogPlaylistBinding
 import org.videolan.vlc.gui.SimpleAdapter
@@ -59,9 +63,8 @@ import org.videolan.vlc.providers.FileBrowserProvider
 import org.videolan.vlc.util.isSchemeStreaming
 import org.videolan.vlc.viewmodels.browser.TYPE_FILE
 import org.videolan.vlc.viewmodels.browser.getBrowserModel
-import java.util.*
+import java.util.LinkedList
 import java.util.concurrent.atomic.AtomicBoolean
-import kotlin.collections.ArrayList
 
 class SavePlaylistDialog : VLCBottomSheetDialogFragment(), View.OnClickListener,
         TextView.OnEditorActionListener, SimpleAdapter.ClickHandler {
@@ -105,6 +108,7 @@ class SavePlaylistDialog : VLCBottomSheetDialogFragment(), View.OnClickListener,
         lifecycleScope.launch { if (requireActivity().showPinIfNeeded()) dismiss() }
         medialibrary = Medialibrary.getInstance()
         adapter = SimpleAdapter(this)
+        adapter.defaultCover = UiTools.getDefaultPlaylistDrawable(requireActivity())
         newTracks = try {
             @Suppress("UNCHECKED_CAST")
             val tracks = requireArguments().parcelableArray<MediaWrapper>(KEY_NEW_TRACKS) as Array<MediaWrapper>



More information about the Android mailing list