[Android] Add more ctx actions to the play queue items
Nicolas Pomepuy
git at videolan.org
Fri Apr 25 05:47:18 UTC 2025
vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Wed Apr 16 12:42:26 2025 +0200| [ccc495b4ab275fbb0b4e85ee93cd6eb25abb35c1] | committer: Nicolas Pomepuy
Add more ctx actions to the play queue items
> https://code.videolan.org/videolan/vlc-android/commit/ccc495b4ab275fbb0b4e85ee93cd6eb25abb35c1
---
.../src/org/videolan/vlc/gui/audio/AudioPlayer.kt | 28 ++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.kt b/application/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.kt
index 2b2f790114..75fc4d7000 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.kt
@@ -93,8 +93,11 @@ import org.videolan.vlc.PlaybackService
import org.videolan.vlc.R
import org.videolan.vlc.databinding.AudioPlayerBinding
import org.videolan.vlc.gui.AudioPlayerContainerActivity
+import org.videolan.vlc.gui.HeaderMediaListActivity
+import org.videolan.vlc.gui.HeaderMediaListActivity.Companion.ARTIST_FROM_ALBUM
import org.videolan.vlc.gui.InfoActivity
import org.videolan.vlc.gui.MainActivity
+import org.videolan.vlc.gui.SecondaryActivity
import org.videolan.vlc.gui.dialogs.CONFIRM_BOOKMARK_RENAME_DIALOG_RESULT
import org.videolan.vlc.gui.dialogs.CtxActionReceiver
import org.videolan.vlc.gui.dialogs.PlaybackSpeedDialog
@@ -119,6 +122,10 @@ import org.videolan.vlc.media.PlaylistManager
import org.videolan.vlc.media.PlaylistManager.Companion.hasMedia
import org.videolan.vlc.util.ContextOption
import org.videolan.vlc.util.ContextOption.CTX_ADD_TO_PLAYLIST
+import org.videolan.vlc.util.ContextOption.CTX_FAV_ADD
+import org.videolan.vlc.util.ContextOption.CTX_FAV_REMOVE
+import org.videolan.vlc.util.ContextOption.CTX_GO_TO_ALBUM
+import org.videolan.vlc.util.ContextOption.CTX_GO_TO_ARTIST
import org.videolan.vlc.util.ContextOption.CTX_GO_TO_FOLDER
import org.videolan.vlc.util.ContextOption.CTX_INFORMATION
import org.videolan.vlc.util.ContextOption.CTX_REMOVE_FROM_PLAYLIST
@@ -426,6 +433,24 @@ class AudioPlayer : Fragment(), PlaylistAdapter.IPlayer, TextWatcher, IAudioPlay
}
CTX_INFORMATION -> showInfoDialog(playlistAdapter.getItem(position))
CTX_GO_TO_FOLDER -> showParentFolder(playlistAdapter.getItem(position))
+ CTX_GO_TO_ALBUM -> {
+ val i = Intent(requireActivity(), HeaderMediaListActivity::class.java)
+ i.putExtra(AudioBrowserFragment.TAG_ITEM, playlistAdapter.getItem(position).album)
+ startActivity(i)
+ }
+ CTX_GO_TO_ARTIST -> lifecycleScope.launch(Dispatchers.IO) {
+ val artist = playlistAdapter.getItem(position).artist
+ val i = Intent(requireActivity(), SecondaryActivity::class.java)
+ i.putExtra(SecondaryActivity.KEY_FRAGMENT, SecondaryActivity.ALBUMS_SONGS)
+ i.putExtra(AudioBrowserFragment.TAG_ITEM, artist)
+ i.putExtra(ARTIST_FROM_ALBUM, true)
+ i.flags = i.flags or Intent.FLAG_ACTIVITY_NO_HISTORY
+ startActivity(i)
+ }
+ CTX_FAV_ADD, CTX_FAV_REMOVE -> lifecycleScope.launch {
+ playlistAdapter.getItem(position).isFavorite = option == CTX_FAV_ADD
+ playlistAdapter.notifyItemChanged(position)
+ }
CTX_SHARE -> lifecycleScope.launch { (requireActivity() as AppCompatActivity).share(playlistAdapter.getItem(position)) }
else -> {}
}
@@ -444,6 +469,9 @@ class AudioPlayer : Fragment(), PlaylistAdapter.IPlayer, TextWatcher, IAudioPlay
val flags = FlagSet(ContextOption::class.java).apply {
addAll(CTX_GO_TO_FOLDER, CTX_INFORMATION, CTX_REMOVE_FROM_PLAYLIST, CTX_STOP_AFTER_THIS)
if (item?.uri?.scheme != "content") addAll(CTX_ADD_TO_PLAYLIST, CTX_SET_RINGTONE, CTX_SHARE)
+ if (item?.album != null) add(CTX_GO_TO_ALBUM)
+ if (item?.artist != null) add(CTX_GO_TO_ARTIST)
+ if (item?.isFavorite == true) add(CTX_FAV_REMOVE) else add(CTX_FAV_ADD)
}
showContext(activity, ctxReceiver, position, item, flags)
}
More information about the Android
mailing list