[Android] Fix preference parsing when using app namespace for fields
Nicolas Pomepuy
git at videolan.org
Tue Apr 8 11:46:30 UTC 2025
vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Tue Apr 8 13:38:45 2025 +0200| [fb8259328580d8946b5bff9d4e847d54759109cd] | committer: Nicolas Pomepuy
Fix preference parsing when using app namespace for fields
> https://code.videolan.org/videolan/vlc-android/commit/fb8259328580d8946b5bff9d4e847d54759109cd
---
.../videolan/vlc/gui/preferences/search/PreferenceParser.kt | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
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 7af30194a1..eea31e81d2 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
@@ -231,6 +231,7 @@ object PreferenceParser {
val parser = context.resources.getXml(id)
var eventType = -1
val namespace = "http://schemas.android.com/apk/res/android"
+ val appNamespace = "http://schemas.android.com/apk/res-auto"
var firstPrefScreeFound = false
val englishContext = ContextWrapper(context).wrap("en")
while (eventType != XmlResourceParser.END_DOCUMENT) {
@@ -243,11 +244,16 @@ object PreferenceParser {
categoryEng = getValue(englishContext, parser, namespace, "title")
}
if (element != "PreferenceCategory" && element != "Preference") {
- val key = getValue(context, parser, namespace, "key")
- val title = getValue(context, parser, namespace, "title")
- val titleEng = getValue(englishContext, parser, namespace, "title")
+ var key = getValue(context, parser, namespace, "key")
+ if (key.isBlank()) key = getValue(context, parser, appNamespace, "key")
+ var title = getValue(context, parser, namespace, "title")
+ if (title.isBlank()) title = getValue(context, parser, appNamespace, "title")
+ var titleEng = getValue(englishContext, parser, namespace, "title")
+ if (titleEng.isBlank()) titleEng = getValue(englishContext, parser, appNamespace, "title")
var summary = getValue(context, parser, namespace, "summary")
+ if (summary.isBlank()) summary = getValue(context, parser, appNamespace, "summary")
var summaryEng = getValue(englishContext, parser, namespace, "summary")
+ if (summaryEng.isBlank()) summaryEng = getValue(englishContext, parser, appNamespace, "summary")
val defaultValue = getValue(context, parser, namespace, "defaultValue")
if (summary.contains("%s") && element == "ListPreference") {
//get the current value for the string substitution
More information about the Android
mailing list