[Android] Fix restoring playback speed by using the correct class
Nicolas Pomepuy
git at videolan.org
Fri May 16 13:23:24 UTC 2025
vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Tue May 13 07:36:17 2025 +0200| [fa03929661d140d4c05fec4e32475451b6a39816] | committer: Duncan McNamara
Fix restoring playback speed by using the correct class
> https://code.videolan.org/videolan/vlc-android/commit/fa03929661d140d4c05fec4e32475451b6a39816
---
.../src/main/java/org/videolan/tools/Settings.kt | 2 +-
.../vlc/gui/preferences/search/PreferenceParser.kt | 47 ++++++++++++----------
2 files changed, 27 insertions(+), 22 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 4591faffa0..fabe3cfd59 100644
--- a/application/tools/src/main/java/org/videolan/tools/Settings.kt
+++ b/application/tools/src/main/java/org/videolan/tools/Settings.kt
@@ -297,7 +297,7 @@ fun SharedPreferences.putSingle(key: String, value: Any) {
is Long -> edit { putLong(key, value) }
is String -> edit { putString(key, value) }
is List<*> -> edit { putStringSet(key, value.toSet() as Set<String>) }
- else -> throw IllegalArgumentException("value class is invalid!")
+ else -> throw IllegalArgumentException("value $value class is invalid!")
}
}
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 79bf29f4bd..a29c943cf4 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
@@ -75,6 +75,27 @@ import java.io.OutputStreamWriter
object PreferenceParser {
+ // Other settings that should be backed up and restored
+ val additionalSettings = arrayOf(
+ KEY_SHOW_UPDATE,
+ KEY_SHOW_WHATS_NEW,
+ AUDIO_DELAY_GLOBAL,
+ AUDIO_PLAY_PROGRESS_MODE,
+ KEY_PLAYBACK_SPEED_VIDEO_GLOBAL,
+ KEY_PLAYBACK_SPEED_AUDIO_GLOBAL,
+ KEY_PLAYBACK_SPEED_VIDEO_GLOBAL_VALUE,
+ KEY_PLAYBACK_SPEED_AUDIO_GLOBAL_VALUE,
+ KEY_INCOGNITO_PLAYBACK_SPEED_VIDEO_GLOBAL_VALUE,
+ KEY_INCOGNITO_PLAYBACK_SPEED_AUDIO_GLOBAL_VALUE,
+ SCREEN_ORIENTATION,
+ PREF_TIPS_SHOWN,
+ PREF_WIDGETS_TIPS_SHOWN,
+ PREF_RESTORE_VIDEO_TIPS_SHOWN,
+ PREF_SHOW_VIDEO_SETTINGS_DISCLAIMER,
+ DISPLAY_UNDER_NOTCH,
+
+ )
+
/**
* Parses all the preferences available in the app.
* @param context the context to be used to retrieve the preferences
@@ -228,7 +249,7 @@ object PreferenceParser {
addAllOtherPrefs(context, allChangedPrefs)
for (allChangedPref in allChangedPrefs) {
when {
- allChangedPref.second is Boolean || allChangedPref.second is Int || allChangedPref.second is Long -> append("\"${allChangedPref.first}\": ${allChangedPref.second}")
+ allChangedPref.second is Float || allChangedPref.second is Boolean || allChangedPref.second is Int || allChangedPref.second is Long -> append("\"${allChangedPref.first}\": ${allChangedPref.second}")
else -> append("\"${allChangedPref.first}\": \"${allChangedPref.second}\"")
}
if (allChangedPref != allChangedPrefs.last()) append(", ")
@@ -237,25 +258,6 @@ object PreferenceParser {
append("}")
}
- val additionalSettings = arrayOf(
- KEY_SHOW_UPDATE,
- KEY_SHOW_WHATS_NEW,
- AUDIO_DELAY_GLOBAL,
- AUDIO_PLAY_PROGRESS_MODE,
- KEY_PLAYBACK_SPEED_VIDEO_GLOBAL,
- KEY_PLAYBACK_SPEED_AUDIO_GLOBAL,
- KEY_PLAYBACK_SPEED_VIDEO_GLOBAL_VALUE,
- KEY_PLAYBACK_SPEED_AUDIO_GLOBAL_VALUE,
- KEY_INCOGNITO_PLAYBACK_SPEED_VIDEO_GLOBAL_VALUE,
- KEY_INCOGNITO_PLAYBACK_SPEED_AUDIO_GLOBAL_VALUE,
- SCREEN_ORIENTATION,
- PREF_TIPS_SHOWN,
- PREF_WIDGETS_TIPS_SHOWN,
- PREF_RESTORE_VIDEO_TIPS_SHOWN,
- PREF_SHOW_VIDEO_SETTINGS_DISCLAIMER,
- DISPLAY_UNDER_NOTCH,
-
- )
private fun addAllOtherPrefs(context: Context, pairs: ArrayList<Pair<String, Any>>) {
for ((key, value) in Settings.getInstance(context).all) {
if (key.startsWith("custom_equalizer_")) {
@@ -425,7 +427,10 @@ object PreferenceParser {
savedSettings?.forEach { saved ->
additionalSettings.forEach {
- if (it == saved.key) newPrefs.putSingle(it, saved.value)
+ if (it == saved.key) {
+ val value = if (saved.value is Double) (saved.value as Double).toFloat() else saved.value
+ newPrefs.putSingle(it, value)
+ }
}
}
}
More information about the Android
mailing list