From 80249c4570c1e7bbee38b6c53953719157380fe7 Mon Sep 17 00:00:00 2001 From: Seweryn Fornalik Date: Thu, 1 Jul 2021 13:50:52 +0200 Subject: [PATCH 1/2] Hide in account settings address book account type --- .../settings/accounts/AccountPreferenceController.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/com/android/settings/accounts/AccountPreferenceController.java b/src/com/android/settings/accounts/AccountPreferenceController.java index 1309cc2bb55..78ab059e5f0 100644 --- a/src/com/android/settings/accounts/AccountPreferenceController.java +++ b/src/com/android/settings/accounts/AccountPreferenceController.java @@ -79,6 +79,12 @@ public class AccountPreferenceController extends AbstractPreferenceController private static final int ORDER_NEXT_TO_LAST = 1001; private static final int ORDER_NEXT_TO_NEXT_TO_LAST = 1000; + /* + by convention all address book account types has "address_book" postfix + e.g. "foundation.e.accountmanager.address_book" + */ + private static final String ADDRESS_BOOK_ACCOUNT_TYPE = "address_book"; + private UserManager mUm; private SparseArray mProfiles = new SparseArray(); private ManagedProfileBroadcastReceiver mManagedProfileBroadcastReceiver @@ -482,6 +488,9 @@ public class AccountPreferenceController extends AbstractPreferenceController for (int i = 0; i < accountTypes.length; i++) { final String accountType = accountTypes[i]; + // Skip displaying address book accounts + if (accountType.contains(ADDRESS_BOOK_ACCOUNT_TYPE)) + continue; // Skip showing any account that does not have any of the requested authorities if (!accountTypeHasAnyRequestedAuthorities(helper, accountType)) { continue; -- GitLab From 147a39dd9cc8d3f27719c00dc35f1431d2e657e8 Mon Sep 17 00:00:00 2001 From: Seweryn Fornalik Date: Thu, 1 Jul 2021 14:35:40 +0200 Subject: [PATCH 2/2] Create dedicated helper class, hide address book from choose account list --- .../accounts/AccountAddressBookHelper.java | 18 ++++++++++++++++++ .../accounts/AccountPreferenceController.java | 12 +----------- .../ChooseAccountPreferenceController.java | 6 ++++-- 3 files changed, 23 insertions(+), 13 deletions(-) create mode 100644 src/com/android/settings/accounts/AccountAddressBookHelper.java diff --git a/src/com/android/settings/accounts/AccountAddressBookHelper.java b/src/com/android/settings/accounts/AccountAddressBookHelper.java new file mode 100644 index 00000000000..c75b26252be --- /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 78ab059e5f0..8b03c63d01f 100644 --- a/src/com/android/settings/accounts/AccountPreferenceController.java +++ b/src/com/android/settings/accounts/AccountPreferenceController.java @@ -79,12 +79,6 @@ public class AccountPreferenceController extends AbstractPreferenceController private static final int ORDER_NEXT_TO_LAST = 1001; private static final int ORDER_NEXT_TO_NEXT_TO_LAST = 1000; - /* - by convention all address book account types has "address_book" postfix - e.g. "foundation.e.accountmanager.address_book" - */ - private static final String ADDRESS_BOOK_ACCOUNT_TYPE = "address_book"; - private UserManager mUm; private SparseArray mProfiles = new SparseArray(); private ManagedProfileBroadcastReceiver mManagedProfileBroadcastReceiver @@ -489,12 +483,8 @@ public class AccountPreferenceController extends AbstractPreferenceController for (int i = 0; i < accountTypes.length; i++) { final String accountType = accountTypes[i]; // Skip displaying address book accounts - if (accountType.contains(ADDRESS_BOOK_ACCOUNT_TYPE)) + if (AccountAddressBookHelper.isAccountAddressBookType(accountType)) continue; - // Skip showing any account that does not have any of the requested authorities - if (!accountTypeHasAnyRequestedAuthorities(helper, 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 a217f017f99..c0973ba6655 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) { -- GitLab