diff --git a/src/com/android/settings/accounts/AccountAddressBookHelper.java b/src/com/android/settings/accounts/AccountAddressBookHelper.java new file mode 100644 index 0000000000000000000000000000000000000000..c75b26252bed3e5937834ab0bfcd25f7fee7245d --- /dev/null +++ b/src/com/android/settings/accounts/AccountAddressBookHelper.java @@ -0,0 +1,18 @@ +package com.android.settings.accounts; + +class AccountAddressBookHelper { + + /* + By convention all address book account types has "address_book" postfix + e.g. "foundation.e.accountmanager.address_book" + */ + public static final String ADDRESS_BOOK_ACCOUNT_TYPE = "address_book"; + + public static boolean isAccountAddressBookType(String account_type) { + if (account_type != null) { + return account_type.contains(ADDRESS_BOOK_ACCOUNT_TYPE); + } else { + return false; + } + } +} diff --git a/src/com/android/settings/accounts/AccountPreferenceController.java b/src/com/android/settings/accounts/AccountPreferenceController.java index 1309cc2bb55c516d6493266a30f8a717eab8ac19..8b03c63d01fb23a6f20c8e9760b49f09f49e9439 100644 --- a/src/com/android/settings/accounts/AccountPreferenceController.java +++ b/src/com/android/settings/accounts/AccountPreferenceController.java @@ -482,10 +482,9 @@ public class AccountPreferenceController extends AbstractPreferenceController for (int i = 0; i < accountTypes.length; i++) { final String accountType = accountTypes[i]; - // Skip showing any account that does not have any of the requested authorities - if (!accountTypeHasAnyRequestedAuthorities(helper, accountType)) { + // Skip displaying address book accounts + if (AccountAddressBookHelper.isAccountAddressBookType(accountType)) continue; - } final CharSequence label = helper.getLabelForType(mContext, accountType); if (label == null) { continue; diff --git a/src/com/android/settings/accounts/ChooseAccountPreferenceController.java b/src/com/android/settings/accounts/ChooseAccountPreferenceController.java index a217f017f99c0f4aec8b2823f0d5242e2b6eea41..c0973ba6655e878de302da43e451d469e574a6a1 100644 --- a/src/com/android/settings/accounts/ChooseAccountPreferenceController.java +++ b/src/com/android/settings/accounts/ChooseAccountPreferenceController.java @@ -76,6 +76,7 @@ public class ChooseAccountPreferenceController extends BasePreferenceController mProviderList = new ArrayList<>(); mTypeToAuthDescription = new HashMap<>(); + } public void initialize(String[] authorities, String[] accountTypesFilter, UserHandle userHandle, @@ -150,8 +151,9 @@ public class ChooseAccountPreferenceController extends BasePreferenceController } } } - if (addAccountPref && mAccountTypesFilter != null - && !mAccountTypesFilter.contains(accountType)) { + if (addAccountPref && ((mAccountTypesFilter != null + && !mAccountTypesFilter.contains(accountType)) + || AccountAddressBookHelper.isAccountAddressBookType(accountType))) { addAccountPref = false; } if (addAccountPref) {