From 3346b1d701b084079c3572abe2158d62fe77ab03 Mon Sep 17 00:00:00 2001 From: simonpoole Date: Mon, 31 Jul 2023 12:27:55 +0200 Subject: [PATCH] Check data style entries before sorting them --- .../java/de/blau/android/resources/DataStyle.java | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/blau/android/resources/DataStyle.java b/src/main/java/de/blau/android/resources/DataStyle.java index 0bc9534e57..681432cb80 100644 --- a/src/main/java/de/blau/android/resources/DataStyle.java +++ b/src/main/java/de/blau/android/resources/DataStyle.java @@ -1397,9 +1397,18 @@ public static String[] getStyleList(@NonNull Context context) { } // creating the default style object will set availableStyles String[] res = new String[availableStyles.size()]; - res[0] = BUILTIN_STYLE_NAME; - String[] keys = (new TreeMap<>(availableStyles)).keySet().toArray(new String[0]); // sort the list + Map sortedMap = new TreeMap<>(); + for (Entry entry : availableStyles.entrySet()) { + final DataStyle value = entry.getValue(); + final String key = entry.getKey(); + if (value != null) { + sortedMap.put(key, value); + } else { + Log.e(DEBUG_TAG, "Style object missing for style " + key); + } + } + String[] keys = sortedMap.keySet().toArray(new String[0]); // sort the list int j = 1; for (int i = 0; i < res.length; i++) { if (!BUILTIN_STYLE_NAME.equals(keys[i])) { @@ -1415,7 +1424,7 @@ public static String[] getStyleList(@NonNull Context context) { * * @param context an Android Context * @param styleNames the list of style names to translate - * @return list of available Styles translated (or untranslated if no translation is avilable) + * @return list of available Styles translated (or untranslated if no translation is available) */ @NonNull public static String[] getStyleListTranslated(@NonNull Context context, @NonNull String[] styleNames) {