From 06c15da893be9e05deb8e04b43aa2d5af6180728 Mon Sep 17 00:00:00 2001 From: Helium Date: Mon, 21 Mar 2022 09:55:59 +0100 Subject: [PATCH] don't show latin secondary locales for non-ascii-capable scripts --- .../latin/settings/SecondaryLocaleSettingsFragment.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 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 4a916c094..96c1f3c93 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 @@ -136,14 +136,17 @@ public final class SecondaryLocaleSettingsFragment extends SubScreenFragment { // get locales with same script as main locale, but different language private Set getAvailableDictionaryLocales(String mainLocale, boolean asciiCapable) { final Locale mainL = LocaleUtils.constructLocaleFromString(mainLocale); + final Set locales = new HashSet<>(); final int mainScript; if (asciiCapable) mainScript = ScriptUtils.SCRIPT_LATIN; else mainScript = ScriptUtils.getScriptFromSpellCheckerLocale(mainL); - // TODO: does this really return latin for persian? might need that huge map from somewhere github - - final Set locales = new HashSet<>(); + // ScriptUtils.getScriptFromSpellCheckerLocale may return latin when it should not + // e.g. for persian or chinese + // workaround: don't allow secondary locales for these locales + if (!asciiCapable && mainScript == ScriptUtils.SCRIPT_LATIN) + return locales; // TODO: also get locales from assets // need merged "compress" PR