Don't show removed default account in settings
Test: manually verify that default account is cleared when account
is removed.
Bug 30742139
Change-Id: I0f7130d8ed73762ff7cd176636e0949064b16be6
diff --git a/src/com/android/contacts/preference/DefaultAccountPreference.java b/src/com/android/contacts/preference/DefaultAccountPreference.java
index efff5a0..d43b8d5 100644
--- a/src/com/android/contacts/preference/DefaultAccountPreference.java
+++ b/src/com/android/contacts/preference/DefaultAccountPreference.java
@@ -23,7 +23,6 @@
import android.util.AttributeSet;
import android.view.View;
-import com.android.contacts.model.AccountTypeManager;
import com.android.contacts.model.account.AccountInfo;
import com.android.contacts.model.account.AccountWithDataSet;
import com.android.contacts.util.AccountsListAdapter;
@@ -33,7 +32,6 @@
public class DefaultAccountPreference extends DialogPreference {
private ContactsPreferences mPreferences;
private AccountsListAdapter mListAdapter;
- private AccountTypeManager mAccountTypeManager;
private List<AccountInfo> mAccounts;
private int mChosenIndex = -1;
@@ -51,6 +49,7 @@
mAccounts = accounts;
if (mListAdapter != null) {
mListAdapter.setAccounts(accounts, null);
+ notifyChanged();
}
}
@@ -66,7 +65,6 @@
if (mAccounts != null) {
mListAdapter.setAccounts(mAccounts, null);
}
- mAccountTypeManager = AccountTypeManager.getInstance(getContext());
}
@Override
@@ -77,11 +75,11 @@
@Override
public CharSequence getSummary() {
final AccountWithDataSet defaultAccount = mPreferences.getDefaultAccount();
- if (defaultAccount == null ||
- !mAccountTypeManager.exists(defaultAccount)) {
+ if (defaultAccount == null || mAccounts == null ||
+ !AccountInfo.contains(mAccounts, defaultAccount)) {
return null;
} else {
- return mAccountTypeManager.getAccountInfoForAccount(defaultAccount).getNameLabel();
+ return AccountInfo.getAccount(mAccounts, defaultAccount).getNameLabel();
}
}
diff --git a/src/com/android/contacts/preference/DisplayOptionsPreferenceFragment.java b/src/com/android/contacts/preference/DisplayOptionsPreferenceFragment.java
index e9c3a01..3f68d05 100644
--- a/src/com/android/contacts/preference/DisplayOptionsPreferenceFragment.java
+++ b/src/com/android/contacts/preference/DisplayOptionsPreferenceFragment.java
@@ -294,14 +294,9 @@
@Override
public void onAccountsLoaded(List<AccountInfo> accounts) {
// Hide accounts preferences if no writable accounts exist
- if (accounts.isEmpty()) {
- getPreferenceScreen().removePreference(findPreference(KEY_DEFAULT_ACCOUNT));
- getPreferenceScreen().removePreference(findPreference(KEY_CUSTOM_CONTACTS_FILTER));
- } else {
- final DefaultAccountPreference preference =
- (DefaultAccountPreference) findPreference(KEY_DEFAULT_ACCOUNT);
- preference.setAccounts(accounts);
- }
+ final DefaultAccountPreference preference =
+ (DefaultAccountPreference) findPreference(KEY_DEFAULT_ACCOUNT);
+ preference.setAccounts(accounts);
}
@Override