[Android] Use the PreferenceVisibilityManager to manage the preferences root
Nicolas Pomepuy
git at videolan.org
Fri Apr 25 05:51:47 UTC 2025
vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Wed Apr 23 13:48:54 2025 +0200| [aaf5f5c109d1871d6149a4c085fca4d779d39745] | committer: Nicolas Pomepuy
Use the PreferenceVisibilityManager to manage the preferences root
> https://code.videolan.org/videolan/vlc-android/commit/aaf5f5c109d1871d6149a4c085fca4d779d39745
---
.../videolan/television/ui/preferences/PreferencesFragment.kt | 9 ---------
.../videolan/vlc/gui/preferences/PreferenceVisibilityManager.kt | 9 +++++++--
.../src/org/videolan/vlc/gui/preferences/PreferencesFragment.kt | 3 ---
3 files changed, 7 insertions(+), 14 deletions(-)
diff --git a/application/television/src/main/java/org/videolan/television/ui/preferences/PreferencesFragment.kt b/application/television/src/main/java/org/videolan/television/ui/preferences/PreferencesFragment.kt
index f01f5f2cb2..bc8cce677e 100644
--- a/application/television/src/main/java/org/videolan/television/ui/preferences/PreferencesFragment.kt
+++ b/application/television/src/main/java/org/videolan/television/ui/preferences/PreferencesFragment.kt
@@ -35,7 +35,6 @@ import androidx.preference.CheckBoxPreference
import androidx.preference.Preference
import androidx.preference.PreferenceScreen
import org.videolan.medialibrary.interfaces.Medialibrary
-import org.videolan.resources.AndroidDevices
import org.videolan.resources.KEY_AUDIO_LAST_PLAYLIST
import org.videolan.resources.KEY_CURRENT_AUDIO
import org.videolan.resources.KEY_CURRENT_AUDIO_RESUME_ARTIST
@@ -46,10 +45,8 @@ import org.videolan.resources.KEY_CURRENT_MEDIA_RESUME
import org.videolan.resources.KEY_MEDIA_LAST_PLAYLIST
import org.videolan.resources.KEY_MEDIA_LAST_PLAYLIST_RESUME
import org.videolan.tools.AUDIO_RESUME_PLAYBACK
-import org.videolan.tools.KEY_VIDEO_APP_SWITCH
import org.videolan.tools.PLAYBACK_HISTORY
import org.videolan.tools.RESULT_RESTART
-import org.videolan.tools.SCREEN_ORIENTATION
import org.videolan.tools.Settings
import org.videolan.tools.Settings.isPinCodeSet
import org.videolan.tools.VIDEO_RESUME_PLAYBACK
@@ -69,12 +66,6 @@ class PreferencesFragment : BasePreferenceFragment(), SharedPreferences.OnShared
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- findPreference<Preference>(SCREEN_ORIENTATION)?.isVisible = false
- findPreference<Preference>("casting_category")?.isVisible = false
- findPreference<Preference>("android_auto_category")?.isVisible = false
- findPreference<Preference>(KEY_VIDEO_APP_SWITCH)?.isVisible = AndroidDevices.hasPiP
- findPreference<Preference>("remote_access_category")?.isVisible = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1
- findPreference<Preference>("permissions_title")?.isVisible = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1
(activity as? PreferencesActivity)?.extraEndPoint?.let {
if (it == "remote_access_category") findPreference<Preference>("remote_access_category")?.let {
onPreferenceTreeClick(it)
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 e9d34194c0..99dc8492af 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
@@ -25,6 +25,7 @@
package org.videolan.vlc.gui.preferences
import android.content.SharedPreferences
+import android.os.Build
import androidx.preference.PreferenceCategory
import androidx.preference.PreferenceScreen
import androidx.preference.children
@@ -34,9 +35,10 @@ import org.videolan.tools.AUDIO_DUCKING
import org.videolan.tools.BROWSER_SHOW_HIDDEN_FILES
import org.videolan.tools.KEY_AOUT
import org.videolan.tools.KEY_APP_THEME
-import org.videolan.tools.KEY_INCOGNITO
+import org.videolan.tools.SCREEN_ORIENTATION
import org.videolan.tools.KEY_QUICK_PLAY
import org.videolan.tools.KEY_QUICK_PLAY_DEFAULT
+import org.videolan.tools.KEY_VIDEO_APP_SWITCH
import org.videolan.tools.LIST_TITLE_ELLIPSIZE
import org.videolan.tools.LOCKSCREEN_COVER
import org.videolan.tools.PLAYLIST_MODE_AUDIO
@@ -65,16 +67,19 @@ object PreferenceVisibilityManager {
KEY_QUICK_PLAY_DEFAULT, KEY_QUICK_PLAY, "secondary_display_category", "secondary_display_category_summary", "enable_clone_mode", SAVE_BRIGHTNESS,
KEY_APP_THEME, LIST_TITLE_ELLIPSIZE, "enable_headset_detection", "enable_play_on_headset_insertion", "ignore_headset_media_button_presses",
"headset_prefs_category", "audio_resume_card", LOCKSCREEN_COVER, SHOW_SEEK_IN_COMPACT_NOTIFICATION,
- "audio_task_removed"-> !forTv
+ "audio_task_removed", "casting_category", "android_auto_category", SCREEN_ORIENTATION, -> !forTv
//only on TV
TV_FOLDERS_FIRST, BROWSER_SHOW_HIDDEN_FILES, PLAYLIST_MODE_VIDEO, PLAYLIST_MODE_AUDIO -> forTv
"show_update" -> !forTv && BuildConfig.DEBUG
+ KEY_VIDEO_APP_SWITCH -> !forTv || AndroidDevices.hasPiP
AUDIO_DUCKING -> !AndroidUtil.isOOrLater
POPUP_FORCE_LEGACY -> AndroidDevices.pipAllowed
RESUME_PLAYBACK -> AndroidDevices.isPhone && !forTv
KEY_AOUT -> VlcMigrationHelper.getAudioOutputFromDevice() == VlcMigrationHelper.AudioOutput.ALL
"audio_digital_output" -> sharedPreferences.getString("aout", "0") != "2"
"optional_features" -> FeatureFlag.entries.isNotEmpty()
+ "remote_access_category" -> !forTv && Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1
+ "permissions_title" -> Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1
else -> true
}
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesFragment.kt b/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesFragment.kt
index b30bf05010..e9e45ba8b1 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesFragment.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesFragment.kt
@@ -26,7 +26,6 @@ package org.videolan.vlc.gui.preferences
import android.app.Activity
import android.content.Intent
import android.content.SharedPreferences
-import android.os.Build
import android.os.Bundle
import android.view.View
import androidx.activity.result.contract.ActivityResultContracts
@@ -90,8 +89,6 @@ class PreferencesFragment : BasePreferenceFragment(), SharedPreferences.OnShared
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
- findPreference<Preference>("remote_access_category")?.isVisible = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1
- findPreference<Preference>("permissions_title")?.isVisible = Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1
audioResumePref = findPreference(AUDIO_RESUME_PLAYBACK)!!
}
More information about the Android
mailing list