From 034ebe780fb300f17af4a93ab51292c7cc9fd30d Mon Sep 17 00:00:00 2001 From: Helium Date: Mon, 21 Mar 2022 09:49:12 +0100 Subject: [PATCH] use lowercase main locale to specifically fix problems with sr_zz and sr_ZZ --- .../latin/settings/SecondaryLocaleSettingsFragment.java | 2 +- .../dslul/openboard/inputmethod/latin/settings/Settings.java | 3 +-- .../dslul/openboard/inputmethod/latin/utils/ScriptUtils.java | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SecondaryLocaleSettingsFragment.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SecondaryLocaleSettingsFragment.java index b13dc5cd5..4a916c094 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SecondaryLocaleSettingsFragment.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/SecondaryLocaleSettingsFragment.java @@ -67,7 +67,7 @@ public final class SecondaryLocaleSettingsFragment extends SubScreenFragment { pref.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override public boolean onPreferenceClick(Preference preference) { - showSecondaryLocaleDialog(subtype.getLocale(), subtype.isAsciiCapable()); + showSecondaryLocaleDialog(subtype.getLocale().toLowerCase(Locale.ENGLISH), subtype.isAsciiCapable()); return true; } }); diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java index 036db5822..158ac36e9 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/settings/Settings.java @@ -514,12 +514,11 @@ public final class Settings implements SharedPreferences.OnSharedPreferenceChang return prefs.getInt(PREF_LAST_SHOWN_EMOJI_CATEGORY_PAGE_ID, defValue); } - // TODO: test whether this gets updated on keyboard language switch! public static Locale getSecondaryLocale(final SharedPreferences prefs, final String mainLocaleString) { final Set encodedLocales = prefs.getStringSet(PREF_SECONDARY_LOCALES, new HashSet<>()); for (String loc : encodedLocales) { String[] locales = loc.split("ยง"); - if (locales.length == 2 && locales[0].equals(mainLocaleString)) + if (locales.length == 2 && locales[0].equals(mainLocaleString.toLowerCase(Locale.ENGLISH))) return LocaleUtils.constructLocaleFromString(locales[1]); } return null; diff --git a/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/ScriptUtils.java b/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/ScriptUtils.java index add344661..ed864b637 100644 --- a/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/ScriptUtils.java +++ b/app/src/main/java/org/dslul/openboard/inputmethod/latin/utils/ScriptUtils.java @@ -202,7 +202,7 @@ public class ScriptUtils { */ public static int getScriptFromSpellCheckerLocale(final Locale locale) { // need special treatment of serbian latin, which would get detected as cyrillic - if (locale.toString().equals("sr_ZZ")) + if (locale.toString().toLowerCase(Locale.ENGLISH).equals("sr_zz")) return ScriptUtils.SCRIPT_LATIN; String language = locale.getLanguage(); Integer script = mLanguageCodeToScriptCode.get(language);