summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/accounts
diff options
context:
space:
mode:
authorFabrice Di Meglio <fdimeglio@google.com>2011-01-18 18:30:14 -0800
committerFabrice Di Meglio <fdimeglio@google.com>2011-01-18 18:30:14 -0800
commitab58d933a7cb00261f9746a9361447ad23d75ee4 (patch)
treec9d0c68258c096eea7d3dd12630cfa98cab69513 /src/com/android/settings/accounts
parent81f794dfa11fa21527ea33335dc76ad488aa9bfa (diff)
downloadpackages_apps_Settings-ab58d933a7cb00261f9746a9361447ad23d75ee4.zip
packages_apps_Settings-ab58d933a7cb00261f9746a9361447ad23d75ee4.tar.gz
packages_apps_Settings-ab58d933a7cb00261f9746a9361447ad23d75ee4.tar.bz2
Fix bug #3366401 (Accounts in "Add accounts" list should be sorted alphabetically)
- sort the account type list Change-Id: Ibf1712dc75fabf144382648acc57d6f19fe0ac96
Diffstat (limited to 'src/com/android/settings/accounts')
-rw-r--r--src/com/android/settings/accounts/ChooseAccountActivity.java20
1 files changed, 16 insertions, 4 deletions
diff --git a/src/com/android/settings/accounts/ChooseAccountActivity.java b/src/com/android/settings/accounts/ChooseAccountActivity.java
index 9d4965f..9576dee 100644
--- a/src/com/android/settings/accounts/ChooseAccountActivity.java
+++ b/src/com/android/settings/accounts/ChooseAccountActivity.java
@@ -16,9 +16,6 @@
package com.android.settings.accounts;
-import com.android.settings.R;
-import com.google.android.collect.Maps;
-
import android.accounts.AccountManager;
import android.accounts.AuthenticatorDescription;
import android.content.ContentResolver;
@@ -33,8 +30,12 @@ import android.preference.PreferenceActivity;
import android.preference.PreferenceGroup;
import android.preference.PreferenceScreen;
import android.util.Log;
+import com.android.internal.util.CharSequences;
+import com.android.settings.R;
+import com.google.android.collect.Maps;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -54,13 +55,23 @@ public class ChooseAccountActivity extends PreferenceActivity {
private Map<String, AuthenticatorDescription> mTypeToAuthDescription
= new HashMap<String, AuthenticatorDescription>();
- private static class ProviderEntry {
+ private static class ProviderEntry implements Comparable<ProviderEntry> {
private final CharSequence name;
private final String type;
ProviderEntry(CharSequence providerName, String accountType) {
name = providerName;
type = accountType;
}
+
+ public int compareTo(ProviderEntry another) {
+ if (name == null) {
+ return -1;
+ }
+ if (another.name == null) {
+ return +1;
+ }
+ return CharSequences.compareToIgnoreCase(name, another.name);
+ }
}
@Override
@@ -131,6 +142,7 @@ public class ChooseAccountActivity extends PreferenceActivity {
// If there's only one provider that matches, just run it.
finishWithAccountType(mProviderList.get(0).type);
} else if (mProviderList.size() > 0) {
+ Collections.sort(mProviderList);
mAddAccountGroup.removeAll();
for (ProviderEntry pref : mProviderList) {
Drawable drawable = getDrawableForType(pref.type);