From fa85b46b85f3e69b67648801393ee2159c636929 Mon Sep 17 00:00:00 2001 From: kari-ts Date: Tue, 1 Oct 2024 16:05:06 -0700 Subject: [PATCH] android: StringArrayListMDMSetting should check for String[] getFromBundle should check for both String[] and ArrayList Fixes tailscale/corp#23557 Signed-off-by: kari-ts --- .../ipn/mdm/MDMSettingsDefinitions.kt | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/android/src/main/java/com/tailscale/ipn/mdm/MDMSettingsDefinitions.kt b/android/src/main/java/com/tailscale/ipn/mdm/MDMSettingsDefinitions.kt index 1ddf59c..173159f 100644 --- a/android/src/main/java/com/tailscale/ipn/mdm/MDMSettingsDefinitions.kt +++ b/android/src/main/java/com/tailscale/ipn/mdm/MDMSettingsDefinitions.kt @@ -46,9 +46,26 @@ class StringMDMSetting(key: String, localizedTitle: String) : class StringArrayListMDMSetting(key: String, localizedTitle: String) : MDMSetting?>(null, key, localizedTitle) { - override fun getFromBundle(bundle: Bundle) = bundle.getStringArrayList(key) - override fun getFromPrefs(prefs: SharedPreferences) = - prefs.getStringSet(key, HashSet())?.toList() + override fun getFromBundle(bundle: Bundle): List? { + // Try to retrieve the value as a String[] first + 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 is found, return null + return null + } + + override fun getFromPrefs(prefs: SharedPreferences): List? { + return prefs.getStringSet(key, HashSet())?.toList() + } } class AlwaysNeverUserDecidesMDMSetting(key: String, localizedTitle: String) :