diff options
author | Fabrice Di Meglio <fdimeglio@google.com> | 2011-01-18 18:30:14 -0800 |
---|---|---|
committer | Fabrice Di Meglio <fdimeglio@google.com> | 2011-01-18 18:30:14 -0800 |
commit | ab58d933a7cb00261f9746a9361447ad23d75ee4 (patch) | |
tree | c9d0c68258c096eea7d3dd12630cfa98cab69513 /src/com/android/settings | |
parent | 81f794dfa11fa21527ea33335dc76ad488aa9bfa (diff) | |
download | packages_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')
-rw-r--r-- | src/com/android/settings/accounts/ChooseAccountActivity.java | 20 |
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); |