mirror of
https://github.com/Helium314/HeliBoard.git
synced 2025-06-05 22:30:12 +00:00
sort list of secondary locales and don't show main locale
This commit is contained in:
parent
623a8076b6
commit
c7cab814ca
1 changed files with 11 additions and 2 deletions
|
@ -38,6 +38,7 @@ import java.util.HashSet;
|
|||
import java.util.List;
|
||||
import java.util.Locale;
|
||||
import java.util.Set;
|
||||
import java.util.TreeSet;
|
||||
|
||||
public final class SecondaryLocaleSettingsFragment extends SubScreenFragment {
|
||||
private RichInputMethodManager mRichImm;
|
||||
|
@ -78,6 +79,14 @@ public final class SecondaryLocaleSettingsFragment extends SubScreenFragment {
|
|||
|
||||
private void showSecondaryLocaleDialog(String mainLocale, boolean asciiCapable) {
|
||||
final List<String> locales = new ArrayList<>(getAvailableDictionaryLocales(mainLocale, asciiCapable));
|
||||
|
||||
// we don't want to offer mainLocale as a choice, same goes for the language (e.g. en for en_GB)
|
||||
locales.remove(mainLocale);
|
||||
if (mainLocale.contains("_")) {
|
||||
final String mainLanguage = LocaleUtils.constructLocaleFromString(mainLocale).getLanguage();
|
||||
locales.remove(mainLanguage);
|
||||
}
|
||||
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(
|
||||
DialogUtils.getPlatformDialogThemeContext(getActivity()))
|
||||
.setTitle(R.string.language_selection_title)
|
||||
|
@ -96,7 +105,7 @@ public final class SecondaryLocaleSettingsFragment extends SubScreenFragment {
|
|||
final CharSequence[] titles = locales.toArray(new CharSequence[0]);
|
||||
for (int i = 0; i < titles.length - 1 ; i++) {
|
||||
final Locale loc = LocaleUtils.constructLocaleFromString(titles[i].toString());
|
||||
titles[i] = loc.getDisplayLanguage(displayLocale);
|
||||
titles[i] = loc.getDisplayName(displayLocale);
|
||||
}
|
||||
|
||||
Locale currentSecondaryLocale = Settings.getSecondaryLocale(getSharedPreferences(), mainLocale);
|
||||
|
@ -136,7 +145,7 @@ public final class SecondaryLocaleSettingsFragment extends SubScreenFragment {
|
|||
// get locales with same script as main locale, but different language
|
||||
private Set<String> getAvailableDictionaryLocales(String mainLocale, boolean asciiCapable) {
|
||||
final Locale mainL = LocaleUtils.constructLocaleFromString(mainLocale);
|
||||
final Set<String> locales = new HashSet<>();
|
||||
final Set<String> locales = new TreeSet<>();
|
||||
final int mainScript;
|
||||
if (asciiCapable)
|
||||
mainScript = ScriptUtils.SCRIPT_LATIN;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue