[Android] Create a restore/backup blacklist to avoid restoring some settings

Nicolas Pomepuy git at videolan.org
Wed Jul 23 11:41:54 UTC 2025


vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Thu Jul 10 14:16:33 2025 +0200| [ec57ad35207e62389d71afdf8204c2844ba5fbbe] | committer: Nicolas Pomepuy

Create a restore/backup blacklist to avoid restoring some settings

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

 .../src/main/java/org/videolan/tools/Settings.kt   | 22 ++++++++++++++++++----
 .../vlc/gui/preferences/search/PreferenceParser.kt |  7 ++++---
 2 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/application/tools/src/main/java/org/videolan/tools/Settings.kt b/application/tools/src/main/java/org/videolan/tools/Settings.kt
index 57b2d93214..99ca7b29f1 100644
--- a/application/tools/src/main/java/org/videolan/tools/Settings.kt
+++ b/application/tools/src/main/java/org/videolan/tools/Settings.kt
@@ -97,6 +97,22 @@ object Settings : SingletonHolder<SharedPreferences, Context>({ init(it.applicat
         audioControlsChangeListener = null
     }
 
+    /**
+     * Get the list of keys to blacklist for the backup/restore process
+     *
+     */
+    fun getRestoreBlacklist() = arrayOf(
+        //last playlist
+        KEY_CURRENT_AUDIO, KEY_CURRENT_MEDIA, KEY_CURRENT_MEDIA_RESUME, KEY_AUDIO_LAST_PLAYLIST,
+        KEY_MEDIA_LAST_PLAYLIST, KEY_MEDIA_LAST_PLAYLIST_RESUME, KEY_CURRENT_AUDIO_RESUME_THUMB,
+        POSITION_IN_MEDIA_LIST, POSITION_IN_AUDIO_LIST, POSITION_IN_SONG, POSITION_IN_MEDIA,
+        //Remote access
+        KEYSTORE_PASSWORD_IV, KEY_COOKIE_ENCRYPT_KEY, KEY_COOKIE_SIGN_KEY, KEYSTORE_PASSWORD, ENCRYPTED_KEY_NAME,
+        //Others
+        KEY_NAVIGATOR_SCREEN_UNSTABLE, KEY_FRAGMENT_ID, KEY_DEBLOCKING, KEY_LAST_SESSION_CRASHED, KEY_METERED_CONNECTION, KEY_MEDIALIBRARY_SCAN
+
+    )
+
     val showTvUi : Boolean
         get() = !overrideTvUI && device.isTv || tvUI
 }
@@ -181,6 +197,8 @@ const val REMOTE_ACCESS_LOGS = "remote_access_logs"
 const val KEYSTORE_PASSWORD = "keystore_encrypted_password"
 const val KEYSTORE_PASSWORD_IV = "keystore_encrypted_password_iv"
 const val ENCRYPTED_KEY_NAME = "encryption_key"
+const val KEY_COOKIE_ENCRYPT_KEY = "cookie_encrypt_key"
+const val KEY_COOKIE_SIGN_KEY = "cookie_sign_key"
 
 
 //Tips
@@ -385,10 +403,6 @@ const val KEY_AUDIO_REPLAY_GAIN_DEFAULT = "audio-replay-gain-default"
 const val KEY_AUDIO_REPLAY_GAIN_PREAMP = "audio-replay-gain-preamp"
 const val KEY_PREFERRED_RESOLUTION = "preferred_resolution"
 
-//Remote access
-const val KEY_COOKIE_ENCRYPT_KEY = "cookie_encrypt_key"
-const val KEY_COOKIE_SIGN_KEY = "cookie_sign_key"
-
 //Auto
 const val KEY_ANDROID_AUTO_QUEUE_FORMAT_VAL = "android_auto_queue_format_val"
 const val KEY_ANDROID_AUTO_QUEUE_INFO_POS_VAL = "android_auto_queue_info_pos_val"
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/preferences/search/PreferenceParser.kt b/application/vlc-android/src/org/videolan/vlc/gui/preferences/search/PreferenceParser.kt
index 4ed17f2797..c8d7053d8a 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/preferences/search/PreferenceParser.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/preferences/search/PreferenceParser.kt
@@ -324,9 +324,10 @@ object PreferenceParser {
     fun getChangedPrefsJson(context: Context):String  {
         val settingsEntries = arrayListOf<SettingEntry>()
         Settings.getInstance(context).all.forEach { setting ->
-            setting.value?.let {
-                settingsEntries.add(SettingEntry(setting.key, it, SettingType.getFromAny(it)))
-            }
+            if (setting.key !in Settings.getRestoreBlacklist())
+                setting.value?.let {
+                    settingsEntries.add(SettingEntry(setting.key, it, SettingType.getFromAny(it)))
+                }
         }
         val settingsBackup = SettingsBackup(settingsEntries, VersionMigration.getCurrentVersion())
         val moshi = Moshi.Builder().build()



More information about the Android mailing list