From a04a95fce6a00b4557f0ebdf350a7fc28075a65c Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 8 Dec 2020 09:01:02 +0100 Subject: [PATCH] Optimization --- .../faircode/email/FragmentOptionsMisc.java | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java index 40343dbd03..e8a98fc9f4 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java @@ -34,6 +34,7 @@ import android.os.Build; import android.os.Bundle; import android.os.Debug; import android.provider.Settings; +import android.util.Pair; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -76,7 +77,7 @@ import io.requery.android.database.sqlite.SQLiteDatabase; public class FragmentOptionsMisc extends FragmentBase implements SharedPreferences.OnSharedPreferenceChangeListener { private boolean resumed = false; - private List languages; + private List> languages = new ArrayList<>(); private SwitchCompat swExternalSearch; private SwitchCompat swShortcuts; @@ -136,13 +137,13 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - languages = new ArrayList<>(Arrays.asList(getResources().getAssets().getLocales())); - Collections.sort(languages, new Comparator() { + for (String tag : getResources().getAssets().getLocales()) + languages.add(new Pair<>(tag, Locale.forLanguageTag(tag).getDisplayName())); + + Collections.sort(languages, new Comparator>() { @Override - public int compare(String lang1, String lang2) { - String display1 = Locale.forLanguageTag(lang1).getDisplayLanguage(); - String display2 = Locale.forLanguageTag(lang2).getDisplayLanguage(); - return display1.compareTo(display2); + public int compare(Pair l1, Pair l2) { + return l1.second.compareTo(l2.second); } }); } @@ -258,7 +259,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc if (position == 0) onNothingSelected(adapterView); else { - String tag = languages.get(position - 1); + String tag = languages.get(position - 1).first; prefs.edit().putString("language", tag).commit(); // apply won't work here } } @@ -721,10 +722,9 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc List display = new ArrayList<>(); display.add(getString(R.string.title_advanced_language_system)); for (int pos = 0; pos < languages.size(); pos++) { - String lang = languages.get(pos); - Locale loc = Locale.forLanguageTag(lang); - display.add(loc.getDisplayName()); - if (lang.equals(language)) + Pair lang = languages.get(pos); + display.add(lang.second); + if (lang.first.equals(language)) selected = pos + 1; }