android: StringArrayListMDMSetting should check for String[]

getFromBundle should check for both String[] and ArrayList<String>

Fixes tailscale/corp#23557

Signed-off-by: kari-ts <kari@tailscale.com>
pull/527/head
kari-ts 1 year ago
parent 8eabe8d6dd
commit fa85b46b85

@ -46,9 +46,26 @@ class StringMDMSetting(key: String, localizedTitle: String) :
class StringArrayListMDMSetting(key: String, localizedTitle: String) : class StringArrayListMDMSetting(key: String, localizedTitle: String) :
MDMSetting<List<String>?>(null, key, localizedTitle) { MDMSetting<List<String>?>(null, key, localizedTitle) {
override fun getFromBundle(bundle: Bundle) = bundle.getStringArrayList(key) override fun getFromBundle(bundle: Bundle): List<String>? {
override fun getFromPrefs(prefs: SharedPreferences) = // Try to retrieve the value as a String[] first
prefs.getStringSet(key, HashSet<String>())?.toList() val stringArray = bundle.getStringArray(key)
if (stringArray != null) {
return stringArray.toList()
}
// Optionally, handle other types if necessary
val stringArrayList = bundle.getStringArrayList(key)
if (stringArrayList != null) {
return stringArrayList
}
// If neither String[] nor ArrayList<String> is found, return null
return null
}
override fun getFromPrefs(prefs: SharedPreferences): List<String>? {
return prefs.getStringSet(key, HashSet<String>())?.toList()
}
} }
class AlwaysNeverUserDecidesMDMSetting(key: String, localizedTitle: String) : class AlwaysNeverUserDecidesMDMSetting(key: String, localizedTitle: String) :

Loading…
Cancel
Save