[Android] Migrate the advanced settings to the visibility manager

Nicolas Pomepuy git at videolan.org
Wed Apr 2 11:59:28 UTC 2025


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Wed Apr  2 06:54:32 2025 +0200| [c3cb21a93c7689fb538135adbce9ca41c2859bdf] | committer: Duncan McNamara

Migrate the advanced settings to the visibility manager

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

 .../org/videolan/television/ui/preferences/PreferencesAdvanced.kt   | 5 -----
 .../org/videolan/vlc/gui/preferences/PreferenceVisibilityManager.kt | 6 ++++++
 .../src/org/videolan/vlc/gui/preferences/PreferencesAdvanced.kt     | 4 ----
 3 files changed, 6 insertions(+), 9 deletions(-)

diff --git a/application/television/src/main/java/org/videolan/television/ui/preferences/PreferencesAdvanced.kt b/application/television/src/main/java/org/videolan/television/ui/preferences/PreferencesAdvanced.kt
index 22967ce297..aaa339ab30 100644
--- a/application/television/src/main/java/org/videolan/television/ui/preferences/PreferencesAdvanced.kt
+++ b/application/television/src/main/java/org/videolan/television/ui/preferences/PreferencesAdvanced.kt
@@ -40,7 +40,6 @@ import androidx.core.os.bundleOf
 import androidx.core.text.isDigitsOnly
 import androidx.fragment.app.FragmentActivity
 import androidx.lifecycle.lifecycleScope
-import androidx.preference.CheckBoxPreference
 import androidx.preference.EditTextPreference
 import androidx.preference.ListPreference
 import androidx.preference.Preference
@@ -90,7 +89,6 @@ import org.videolan.vlc.gui.preferences.search.PreferenceParser
 import org.videolan.vlc.isVLC4
 import org.videolan.vlc.providers.PickerType
 import org.videolan.vlc.util.AutoUpdate
-import org.videolan.vlc.util.FeatureFlag
 import org.videolan.vlc.util.FileUtils
 import org.videolan.vlc.util.deleteAllWatchNext
 import java.io.File
@@ -110,9 +108,6 @@ class PreferencesAdvanced : BasePreferenceFragment(), SharedPreferences.OnShared
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
-        if (FeatureFlag.values().isNotEmpty()) findPreference<Preference>("optional_features")?.isVisible = true
-        findPreference<CheckBoxPreference>("quick_play")?.isVisible = false
-        findPreference<CheckBoxPreference>("quick_play_default")?.isVisible = false
         val aoutPref = findPreference<ListPreference>(KEY_AOUT)
         if (isVLC4() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
             aoutPref?.entryValues = activity.resources.getStringArray(R.array.aouts_complete_values)
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferenceVisibilityManager.kt b/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferenceVisibilityManager.kt
index 70467626a8..2da079cff2 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferenceVisibilityManager.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferenceVisibilityManager.kt
@@ -33,8 +33,10 @@ import org.videolan.resources.AndroidDevices
 import org.videolan.tools.AUDIO_DUCKING
 import org.videolan.tools.KEY_AOUT
 import org.videolan.tools.RESUME_PLAYBACK
+import org.videolan.vlc.BuildConfig
 import org.videolan.vlc.VlcMigrationHelper
 import org.videolan.vlc.gui.preferences.PreferenceVisibilityManager.isPreferenceVisible
+import org.videolan.vlc.util.FeatureFlag
 
 object PreferenceVisibilityManager {
 
@@ -51,6 +53,10 @@ object PreferenceVisibilityManager {
         KEY_AOUT -> VlcMigrationHelper.getAudioOutputFromDevice() == VlcMigrationHelper.AudioOutput.ALL
         "audio_digital_output" -> sharedPreferences.getString("aout", "0") != "2"
         "enable_headset_detection", "enable_play_on_headset_insertion", "ignore_headset_media_button_presses", "headset_prefs_category" -> !forTv
+        "optional_features" -> FeatureFlag.entries.isNotEmpty()
+        "show_update" -> !forTv && BuildConfig.DEBUG
+        "quick_play" -> !forTv
+        "quick_play_default" -> !forTv
         else -> true
     }
 
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesAdvanced.kt b/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesAdvanced.kt
index 6a2464280a..95aae0a60e 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesAdvanced.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesAdvanced.kt
@@ -71,7 +71,6 @@ import org.videolan.tools.KEY_QUICK_PLAY_DEFAULT
 import org.videolan.tools.RESULT_RESTART
 import org.videolan.tools.Settings
 import org.videolan.tools.putSingle
-import org.videolan.vlc.BuildConfig
 import org.videolan.vlc.R
 import org.videolan.vlc.gui.DebugLogActivity
 import org.videolan.vlc.gui.browser.EXTRA_MRL
@@ -93,7 +92,6 @@ import org.videolan.vlc.gui.preferences.search.PreferenceParser
 import org.videolan.vlc.isVLC4
 import org.videolan.vlc.providers.PickerType
 import org.videolan.vlc.util.AutoUpdate
-import org.videolan.vlc.util.FeatureFlag
 import org.videolan.vlc.util.FileUtils
 import org.videolan.vlc.util.share
 import java.io.File
@@ -113,14 +111,12 @@ class PreferencesAdvanced : BasePreferenceFragment(), SharedPreferences.OnShared
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
-        if (FeatureFlag.values().isNotEmpty()) findPreference<Preference>("optional_features")?.isVisible = true
 
         findPreference<EditTextPreference>("network_caching")?.setOnBindEditTextListener {
             it.inputType = InputType.TYPE_CLASS_NUMBER
             it.filters = arrayOf<InputFilter>(InputFilter.LengthFilter(5))
             it.setSelection(it.editableText.length)
         }
-        if (!BuildConfig.DEBUG) findPreference<Preference>("show_update")?.isVisible  = false
 
         val aoutPref = findPreference<ListPreference>(KEY_AOUT)
         if (isVLC4() && Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {



More information about the Android mailing list