Skip to content
Snippets Groups Projects
Commit b33478eb authored by Nicolas Pomepuy's avatar Nicolas Pomepuy
Browse files

Allow playing a playlist as audio

Fixes #2832
parent 048ef18e
No related branches found
No related tags found
No related merge requests found
......@@ -44,10 +44,7 @@ import com.google.android.material.tabs.TabLayout
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.videolan.medialibrary.interfaces.media.Album
import org.videolan.medialibrary.interfaces.media.Artist
import org.videolan.medialibrary.interfaces.media.Genre
import org.videolan.medialibrary.interfaces.media.MediaWrapper
import org.videolan.medialibrary.interfaces.media.*
import org.videolan.medialibrary.media.MediaLibraryItem
import org.videolan.resources.*
import org.videolan.tools.*
......@@ -392,6 +389,7 @@ abstract class BaseAudioBrowser<T : MedialibraryViewModel> : MediaBrowserFragmen
if ((item as? Genre)?.isFavorite == true) flags or CTX_FAV_REMOVE else flags or CTX_FAV_ADD
}
MediaLibraryItem.TYPE_PLAYLIST -> {
CTX_PLAY_AS_AUDIO or
(if (item.tracksCount > 2) CTX_PLAYLIST_ALBUM_FLAGS or CTX_PLAY_SHUFFLE else CTX_PLAYLIST_ALBUM_FLAGS) or if(item.isFavorite) CTX_FAV_REMOVE else CTX_FAV_ADD
}
else -> CTX_AUDIO_FLAGS
......@@ -418,6 +416,14 @@ abstract class BaseAudioBrowser<T : MedialibraryViewModel> : MediaBrowserFragmen
when (option) {
CTX_PLAY -> MediaUtils.playTracks(requireActivity(), media, 0)
CTX_PLAY_SHUFFLE -> MediaUtils.playTracks(requireActivity(), media, SecureRandom().nextInt(min(media.tracksCount, MEDIALIBRARY_PAGE_SIZE)), true)
CTX_PLAY_AS_AUDIO -> lifecycleScope.launch(Dispatchers.IO) {
(media as? Playlist)?.tracks?.let { trackArray ->
MediaUtils.openList(requireActivity(), trackArray.map {
it.addFlags(MediaWrapper.MEDIA_FORCE_AUDIO)
it
}.toList(), 0)
}
}
CTX_INFORMATION -> showInfoDialog(media)
CTX_DELETE -> removeItem(media)
CTX_APPEND -> MediaUtils.appendMedia(requireActivity(), media.tracks)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment