From 80249c4570c1e7bbee38b6c53953719157380fe7 Mon Sep 17 00:00:00 2001 From: Seweryn Fornalik Date: Thu, 1 Jul 2021 13:50:52 +0200 Subject: [PATCH 1/4] 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/4] 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 From e879f8c38146ee58bd0cbe720dfea3c1cd863080 Mon Sep 17 00:00:00 2001 From: Seweryn Fornalik Date: Fri, 2 Jul 2021 14:17:26 +0200 Subject: [PATCH 3/4] Update ecloud accounts labels --- .../accounts/AccountAddressBookHelper.java | 20 +++++++++++++++++++ .../accounts/AccountPreferenceController.java | 18 ++++++++++------- 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/src/com/android/settings/accounts/AccountAddressBookHelper.java b/src/com/android/settings/accounts/AccountAddressBookHelper.java index c75b26252be..f18e149ea89 100644 --- a/src/com/android/settings/accounts/AccountAddressBookHelper.java +++ b/src/com/android/settings/accounts/AccountAddressBookHelper.java @@ -1,5 +1,7 @@ package com.android.settings.accounts; +import android.accounts.Account; + class AccountAddressBookHelper { /* @@ -15,4 +17,22 @@ class AccountAddressBookHelper { return false; } } + + /** + * Converting account name get from nextcloud accoring to our needs + */ + public static String convertAccountName(Account account) { + if (account != null && account.type != null) { + if (!isAccountAddressBookType(account.type)) { + // ecloud account + // TODO - should be constructed out of resources + return "Settings (" + account.name + ")"; + } else { + // TODO change address_book account type name + return account.name + } + } else { + return ""; + } + } } diff --git a/src/com/android/settings/accounts/AccountPreferenceController.java b/src/com/android/settings/accounts/AccountPreferenceController.java index 8b03c63d01f..26b526109f7 100644 --- a/src/com/android/settings/accounts/AccountPreferenceController.java +++ b/src/com/android/settings/accounts/AccountPreferenceController.java @@ -482,9 +482,6 @@ public class AccountPreferenceController extends AbstractPreferenceController for (int i = 0; i < accountTypes.length; i++) { final String accountType = accountTypes[i]; - // Skip displaying address book accounts - if (AccountAddressBookHelper.isAccountAddressBookType(accountType)) - continue; final CharSequence label = helper.getLabelForType(mContext, accountType); if (label == null) { continue; @@ -499,20 +496,26 @@ public class AccountPreferenceController extends AbstractPreferenceController // Add a preference row for each individual account for (Account account : accounts) { + // create account with converted name + Account convertedNameAccount = new Account( + AccountAddressBookHelper.convertAccountName(account.name), + account.type, + account.getAccessId() + ); final AccountTypePreference preference = - preferenceToRemove.remove(AccountTypePreference.buildKey(account)); + preferenceToRemove.remove(AccountTypePreference.buildKey(convertedNameAccount)); if (preference != null) { accountTypePreferences.add(preference); continue; } final ArrayList auths = - helper.getAuthoritiesForAccountType(account.type); + helper.getAuthoritiesForAccountType(convertedNameAccount.type); if (!AccountRestrictionHelper.showAccount(mAuthorities, auths)) { continue; } final Bundle fragmentArguments = new Bundle(); fragmentArguments.putParcelable(AccountDetailDashboardFragment.KEY_ACCOUNT, - account); + convertedNameAccount); fragmentArguments.putParcelable(AccountDetailDashboardFragment.KEY_USER_HANDLE, userHandle); fragmentArguments.putString(AccountDetailDashboardFragment.KEY_ACCOUNT_TYPE, @@ -522,9 +525,10 @@ public class AccountPreferenceController extends AbstractPreferenceController fragmentArguments.putInt(AccountDetailDashboardFragment.KEY_ACCOUNT_TITLE_RES, titleResId); fragmentArguments.putParcelable(EXTRA_USER, userHandle); + //c accountTypePreferences.add(new AccountTypePreference( prefContext, mMetricsFeatureProvider.getMetricsCategory(mParent), - account, titleResPackageName, titleResId, label, + convertedNameAccount, titleResPackageName, titleResId, label, AccountDetailDashboardFragment.class.getName(), fragmentArguments, icon)); } helper.preloadDrawableForType(mContext, accountType); -- GitLab From 0e4393bac3f17897892ad4f952c3756759fe0e6f Mon Sep 17 00:00:00 2001 From: Amit Kumar Date: Fri, 30 Jul 2021 16:02:07 +0000 Subject: [PATCH 4/4] Add semicolon to fix failing build --- src/com/android/settings/accounts/AccountAddressBookHelper.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/com/android/settings/accounts/AccountAddressBookHelper.java b/src/com/android/settings/accounts/AccountAddressBookHelper.java index f18e149ea89..a5875f44b74 100644 --- a/src/com/android/settings/accounts/AccountAddressBookHelper.java +++ b/src/com/android/settings/accounts/AccountAddressBookHelper.java @@ -29,7 +29,7 @@ class AccountAddressBookHelper { return "Settings (" + account.name + ")"; } else { // TODO change address_book account type name - return account.name + return account.name; } } else { return ""; -- GitLab