From 21eaab3259b10bdee1b33b41bf41423c0bbfd116 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Tue, 5 Nov 2019 14:57:25 -0300 Subject: [PATCH] [android] prevent crash when user has set theme to system default on an API level that does not support it. --- .../briar/android/settings/SettingsFragment.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java index b87e0e4cb..e555ede38 100644 --- a/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java +++ b/briar-android/src/main/java/org/briarproject/briar/android/settings/SettingsFragment.java @@ -218,11 +218,17 @@ public class SettingsFragment extends PreferenceFragmentCompat }); if (SDK_INT < 27) { - // remove System Default Theme option + // remove System Default Theme option from preference entries + // as it is not functional on this API anyway List entries = new ArrayList<>(Arrays.asList(theme.getEntries())); entries.remove(getString(R.string.pref_theme_system)); theme.setEntries(entries.toArray(new CharSequence[0])); + // also remove corresponding value + List values = + new ArrayList<>(Arrays.asList(theme.getEntryValues())); + values.remove(getString(R.string.pref_theme_system_value)); + theme.setEntryValues(values.toArray(new CharSequence[0])); } if (IS_DEBUG_BUILD) { findPreference("pref_key_explode").setOnPreferenceClickListener(