summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorEric Fischer <enf@google.com>2009-05-11 18:03:39 -0700
committerEric Fischer <enf@google.com>2009-05-11 18:03:39 -0700
commit44ef5575aaded6fdfd778b8724a0e19a6caf1a62 (patch)
treef9d745b5d73dc3f5c88991905f30a478a50912f9 /src/com
parente3744c8c8a4546b43d024ced6d25b2408da05f27 (diff)
downloadpackages_apps_settings-44ef5575aaded6fdfd778b8724a0e19a6caf1a62.zip
packages_apps_settings-44ef5575aaded6fdfd778b8724a0e19a6caf1a62.tar.gz
packages_apps_settings-44ef5575aaded6fdfd778b8724a0e19a6caf1a62.tar.bz2
Show locale names in alphabetical order, in their own language.
Bug 1776043: List the locales in alphabetical order. Bug 1703550: List the locales in their own languages instead of in the current language.
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/settings/LocalePicker.java24
1 files changed, 16 insertions, 8 deletions
diff --git a/src/com/android/settings/LocalePicker.java b/src/com/android/settings/LocalePicker.java
index 67978ee..ecd9689 100644
--- a/src/com/android/settings/LocalePicker.java
+++ b/src/com/android/settings/LocalePicker.java
@@ -30,6 +30,7 @@ import android.widget.ListView;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
+import java.text.Collator;
import java.util.Arrays;
import java.util.Locale;
@@ -38,7 +39,9 @@ public class LocalePicker extends ListActivity {
Loc[] mLocales;
- private static class Loc {
+ private static class Loc implements Comparable {
+ static Collator sCollator = Collator.getInstance();
+
String label;
Locale locale;
@@ -51,6 +54,10 @@ public class LocalePicker extends ListActivity {
public String toString() {
return this.label;
}
+
+ public int compareTo(Object o) {
+ return sCollator.compare(this.label, ((Loc) o).label);
+ }
}
int getContentView() {
@@ -78,9 +85,9 @@ public class LocalePicker extends ListActivity {
if (finalSize == 0) {
Log.v(TAG, "adding initial "+
- toTitleCase(l.getDisplayLanguage()));
+ toTitleCase(l.getDisplayLanguage(l)));
preprocess[finalSize++] =
- new Loc(toTitleCase(l.getDisplayLanguage()), l);
+ new Loc(toTitleCase(l.getDisplayLanguage(l)), l);
} else {
// check previous entry:
// same lang and a country -> upgrade to full name and
@@ -91,20 +98,20 @@ public class LocalePicker extends ListActivity {
Log.v(TAG, "backing up and fixing "+
preprocess[finalSize-1].label+" to "+
preprocess[finalSize-1].locale.
- getDisplayName());
+ getDisplayName(l));
preprocess[finalSize-1].label = toTitleCase(
preprocess[finalSize-1].
- locale.getDisplayName());
+ locale.getDisplayName(l));
Log.v(TAG, " and adding "+
- toTitleCase(l.getDisplayName()));
+ toTitleCase(l.getDisplayName(l)));
preprocess[finalSize++] =
- new Loc(toTitleCase(l.getDisplayName()), l);
+ new Loc(toTitleCase(l.getDisplayName(l)), l);
} else {
String displayName;
if (s.equals("zz_ZZ")) {
displayName = "Pseudo...";
} else {
- displayName = toTitleCase(l.getDisplayLanguage());
+ displayName = toTitleCase(l.getDisplayLanguage(l));
}
Log.v(TAG, "adding "+displayName);
preprocess[finalSize++] = new Loc(displayName, l);
@@ -116,6 +123,7 @@ public class LocalePicker extends ListActivity {
for (int i = 0; i < finalSize ; i++) {
mLocales[i] = preprocess[i];
}
+ Arrays.sort(mLocales);
int layoutId = R.layout.locale_picker_item;
int fieldId = R.id.locale;
ArrayAdapter<Loc> adapter =