Optimization

pull/190/head
M66B 5 years ago
parent 1d50e05ca7
commit a04a95fce6

@ -34,6 +34,7 @@ import android.os.Build;
import android.os.Bundle; import android.os.Bundle;
import android.os.Debug; import android.os.Debug;
import android.provider.Settings; import android.provider.Settings;
import android.util.Pair;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuInflater;
@ -76,7 +77,7 @@ import io.requery.android.database.sqlite.SQLiteDatabase;
public class FragmentOptionsMisc extends FragmentBase implements SharedPreferences.OnSharedPreferenceChangeListener { public class FragmentOptionsMisc extends FragmentBase implements SharedPreferences.OnSharedPreferenceChangeListener {
private boolean resumed = false; private boolean resumed = false;
private List<String> languages; private List<Pair<String, String>> languages = new ArrayList<>();
private SwitchCompat swExternalSearch; private SwitchCompat swExternalSearch;
private SwitchCompat swShortcuts; private SwitchCompat swShortcuts;
@ -136,13 +137,13 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
languages = new ArrayList<>(Arrays.asList(getResources().getAssets().getLocales())); for (String tag : getResources().getAssets().getLocales())
Collections.sort(languages, new Comparator<String>() { languages.add(new Pair<>(tag, Locale.forLanguageTag(tag).getDisplayName()));
Collections.sort(languages, new Comparator<Pair<String, String>>() {
@Override @Override
public int compare(String lang1, String lang2) { public int compare(Pair<String, String> l1, Pair<String, String> l2) {
String display1 = Locale.forLanguageTag(lang1).getDisplayLanguage(); return l1.second.compareTo(l2.second);
String display2 = Locale.forLanguageTag(lang2).getDisplayLanguage();
return display1.compareTo(display2);
} }
}); });
} }
@ -258,7 +259,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
if (position == 0) if (position == 0)
onNothingSelected(adapterView); onNothingSelected(adapterView);
else { 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 prefs.edit().putString("language", tag).commit(); // apply won't work here
} }
} }
@ -721,10 +722,9 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
List<String> display = new ArrayList<>(); List<String> display = new ArrayList<>();
display.add(getString(R.string.title_advanced_language_system)); display.add(getString(R.string.title_advanced_language_system));
for (int pos = 0; pos < languages.size(); pos++) { for (int pos = 0; pos < languages.size(); pos++) {
String lang = languages.get(pos); Pair<String, String> lang = languages.get(pos);
Locale loc = Locale.forLanguageTag(lang); display.add(lang.second);
display.add(loc.getDisplayName()); if (lang.first.equals(language))
if (lang.equals(language))
selected = pos + 1; selected = pos + 1;
} }

Loading…
Cancel
Save