[Android] Allow renaming playlists in the audio fragments
Nicolas Pomepuy
git at videolan.org
Mon Feb 10 14:09:43 UTC 2025
vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Fri Feb 7 09:00:42 2025 +0100| [3143715bcc0e429a34192c7f7df78c42358aeaba] | committer: Nicolas Pomepuy
Allow renaming playlists in the audio fragments
> https://code.videolan.org/videolan/vlc-android/commit/3143715bcc0e429a34192c7f7df78c42358aeaba
---
.../src/org/videolan/vlc/gui/audio/BaseAudioBrowser.kt | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/audio/BaseAudioBrowser.kt b/application/vlc-android/src/org/videolan/vlc/gui/audio/BaseAudioBrowser.kt
index 4a14042ab3..ee3150d071 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/audio/BaseAudioBrowser.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/audio/BaseAudioBrowser.kt
@@ -49,6 +49,7 @@ import org.videolan.medialibrary.interfaces.media.*
import org.videolan.medialibrary.media.MediaLibraryItem
import org.videolan.resources.*
import org.videolan.resources.util.getFromMl
+import org.videolan.resources.util.parcelable
import org.videolan.tools.*
import org.videolan.vlc.BuildConfig
import org.videolan.vlc.R
@@ -57,7 +58,11 @@ import org.videolan.vlc.gui.HeaderMediaListActivity
import org.videolan.vlc.gui.HeaderMediaListActivity.Companion.ARTIST_FROM_ALBUM
import org.videolan.vlc.gui.SecondaryActivity
import org.videolan.vlc.gui.browser.MediaBrowserFragment
+import org.videolan.vlc.gui.dialogs.CONFIRM_RENAME_DIALOG_RESULT
import org.videolan.vlc.gui.dialogs.CtxActionReceiver
+import org.videolan.vlc.gui.dialogs.RENAME_DIALOG_MEDIA
+import org.videolan.vlc.gui.dialogs.RENAME_DIALOG_NEW_NAME
+import org.videolan.vlc.gui.dialogs.RenameDialog
import org.videolan.vlc.gui.dialogs.SavePlaylistDialog
import org.videolan.vlc.gui.dialogs.showContext
import org.videolan.vlc.gui.helpers.AudioUtil.setRingtone
@@ -181,6 +186,14 @@ abstract class BaseAudioBrowser<T : MedialibraryViewModel> : MediaBrowserFragmen
super.onViewCreated(view, savedInstanceState)
view.findViewById<ViewPager>(R.id.pager)?.let { viewPager = it }
tabLayout = requireActivity().findViewById(R.id.sliding_tabs)
+ requireActivity().supportFragmentManager.setFragmentResultListener(CONFIRM_RENAME_DIALOG_RESULT, viewLifecycleOwner) { requestKey, bundle ->
+ val media = bundle.parcelable<MediaLibraryItem>(RENAME_DIALOG_MEDIA) ?: return at setFragmentResultListener
+ val name = bundle.getString(RENAME_DIALOG_NEW_NAME) ?: return at setFragmentResultListener
+ lifecycleScope.launch {
+ withContext(Dispatchers.IO) { (media as? Playlist)?.setName(name) }
+ viewModel.refresh()
+ }
+ }
}
fun setupLayoutManager(providerInCard: Boolean, list: RecyclerView, provider: MedialibraryProvider<MediaLibraryItem>, adapter: AudioBrowserAdapter, spacing: Int) {
@@ -482,6 +495,11 @@ abstract class BaseAudioBrowser<T : MedialibraryViewModel> : MediaBrowserFragmen
CTX_FAV_ADD, CTX_FAV_REMOVE -> lifecycleScope.launch {
withContext(Dispatchers.IO) { media.isFavorite = option == CTX_FAV_ADD }
}
+ CTX_RENAME -> {
+ if (media !is Playlist) return
+ val dialog = RenameDialog.newInstance(media)
+ dialog.show(requireActivity().supportFragmentManager, RenameDialog::class.simpleName)
+ }
else -> {}
}
}
More information about the Android
mailing list