[Android] Hide the all playlist mode settings and migrate to default actions

Nicolas Pomepuy git at videolan.org
Tue Mar 25 11:55:47 UTC 2025


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Tue Mar 18 12:03:06 2025 +0100| [349ab4608d5cc5cf3558ad42d78c64fdfb7c2404] | committer: Nicolas Pomepuy

Hide the all playlist mode settings and migrate to default actions

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

 .../videolan/vlc/gui/preferences/PreferencesUi.kt  |  2 ++
 .../src/org/videolan/vlc/util/VersionMigration.kt  | 33 ++++++++++++++++++++--
 2 files changed, 32 insertions(+), 3 deletions(-)

diff --git a/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesUi.kt b/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesUi.kt
index 6e805b23c9..8bc78e2c00 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesUi.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesUi.kt
@@ -71,6 +71,8 @@ class PreferencesUi : BasePreferenceFragment(), SharedPreferences.OnSharedPrefer
         super.onCreate(savedInstanceState)
         prepareLocaleList()
         setupTheme()
+        findPreference<Preference>("playlist_mode_video")?.isVisible = false
+        findPreference<Preference>("playlist_mode_audio")?.isVisible = false
     }
 
     override fun onCreatePreferences(bundle: Bundle?, s: String?) {
diff --git a/application/vlc-android/src/org/videolan/vlc/util/VersionMigration.kt b/application/vlc-android/src/org/videolan/vlc/util/VersionMigration.kt
index 65c5a2ff70..90c816746a 100644
--- a/application/vlc-android/src/org/videolan/vlc/util/VersionMigration.kt
+++ b/application/vlc-android/src/org/videolan/vlc/util/VersionMigration.kt
@@ -36,8 +36,6 @@ import org.videolan.medialibrary.interfaces.Medialibrary
 import org.videolan.medialibrary.interfaces.media.Playlist
 import org.videolan.resources.AndroidDevices
 import org.videolan.resources.util.getFromMl
-import org.videolan.tools.PLAYLIST_MODE_AUDIO
-import org.videolan.tools.PLAYLIST_MODE_VIDEO
 import org.videolan.tools.KEY_APP_THEME
 import org.videolan.tools.KEY_CURRENT_MAJOR_VERSION
 import org.videolan.tools.KEY_CURRENT_SETTINGS_VERSION
@@ -46,18 +44,22 @@ import org.videolan.tools.KEY_PLAYBACK_SPEED_AUDIO_GLOBAL_VALUE
 import org.videolan.tools.KEY_PLAYBACK_SPEED_VIDEO_GLOBAL
 import org.videolan.tools.KEY_PLAYBACK_SPEED_VIDEO_GLOBAL_VALUE
 import org.videolan.tools.KEY_VIDEO_CONFIRM_RESUME
+import org.videolan.tools.PLAYLIST_MODE_AUDIO
+import org.videolan.tools.PLAYLIST_MODE_VIDEO
 import org.videolan.tools.SCREENSHOT_MODE
 import org.videolan.tools.Settings
 import org.videolan.tools.VIDEO_HUD_TIMEOUT
 import org.videolan.tools.coerceInOrDefault
 import org.videolan.tools.putSingle
 import org.videolan.tools.toInt
+import org.videolan.vlc.gui.helpers.DefaultPlaybackAction
+import org.videolan.vlc.gui.helpers.DefaultPlaybackActionMediaType
 import org.videolan.vlc.gui.onboarding.ONBOARDING_DONE_KEY
 import org.videolan.vlc.isVLC4
 import java.io.File
 import java.io.IOException
 
-private const val CURRENT_VERSION = 14
+private const val CURRENT_VERSION = 15
 
 object VersionMigration {
 
@@ -120,6 +122,10 @@ object VersionMigration {
             migrateToVersion14(settings)
         }
 
+        if (lastVersion < 15) {
+            migrateToVersion15(settings)
+        }
+
         //Major version upgrade
         if (lastMajorVersion == 3 && currentMajorVersion == 4) {
             migrateToVlc4(settings)
@@ -365,6 +371,27 @@ object VersionMigration {
         }
     }
 
+    /**
+     * Migrate after implementation of the default playback actions
+     *
+     */
+    private fun migrateToVersion15(settings: SharedPreferences) {
+        Log.i(this::class.java.simpleName, "Migrate after implementation of the default playback actions")
+        if (settings.contains("playlist_mode_video") && settings.getBoolean("playlist_mode_video", false)) {
+            settings.edit(true) {
+                putString(DefaultPlaybackActionMediaType.VIDEO.defaultActionKey, DefaultPlaybackAction.PLAY_ALL.name)
+            }
+
+        }
+        if (settings.contains("playlist_mode_audio") && settings.getBoolean("playlist_mode_audio", false)) {
+            DefaultPlaybackActionMediaType.entries.filter { it.allowPlayAll }.forEach {
+                settings.edit(true) {
+                    putString(DefaultPlaybackActionMediaType.TRACK.defaultActionKey, DefaultPlaybackAction.PLAY_ALL.name)
+                }
+            }
+        }
+    }
+
     /**
      * Migration to vlc 4
      * ⚠️⚠️⚠️ This should not be destructive! Any first install will run this.



More information about the Android mailing list