Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7479ec6a authored by Liefu Liu's avatar Liefu Liu
Browse files

Added the DefaultAccount.getEligibleCloudAccounts API

Bug: 352313110,364637693,359957924
Fix: 359957924
Test: added new test
Flag: android.provider.new_default_account_api_enabled
API-Coverage-Bug: 369343261

	modified:   core/api/system-current.txt
	modified:   core/java/android/provider/ContactsContract.java

Change-Id: I00961ea46bdf716309554dcb7be3294670a27dcd
parent 7f2aa00d
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -11956,6 +11956,7 @@ package android.provider {
  }
  @FlaggedApi("android.provider.new_default_account_api_enabled") public static final class ContactsContract.RawContacts.DefaultAccount {
    method @FlaggedApi("android.provider.new_default_account_api_enabled") @NonNull @RequiresPermission(android.Manifest.permission.SET_DEFAULT_ACCOUNT_FOR_CONTACTS) public static java.util.List<android.accounts.Account> getEligibleCloudAccounts(@NonNull android.content.ContentResolver);
    method @FlaggedApi("android.provider.new_default_account_api_enabled") @RequiresPermission(allOf={android.Manifest.permission.READ_CONTACTS, android.Manifest.permission.SET_DEFAULT_ACCOUNT_FOR_CONTACTS}) public static int getNumberOfMovableLocalContacts(@NonNull android.content.ContentResolver);
    method @FlaggedApi("android.provider.new_default_account_api_enabled") @RequiresPermission(allOf={android.Manifest.permission.READ_CONTACTS, android.Manifest.permission.SET_DEFAULT_ACCOUNT_FOR_CONTACTS}) public static int getNumberOfMovableSimContacts(@NonNull android.content.ContentResolver);
    method @FlaggedApi("android.provider.new_default_account_api_enabled") @RequiresPermission(allOf={android.Manifest.permission.WRITE_CONTACTS, android.Manifest.permission.SET_DEFAULT_ACCOUNT_FOR_CONTACTS}) public static void moveLocalContactsToCloudDefaultAccount(@NonNull android.content.ContentResolver);
+27 −24
Original line number Diff line number Diff line
@@ -3359,6 +3359,33 @@ public final class ContactsContract {
                        SET_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD, null, extras);
            }

            /**
             * Get a list of cloud accounts that is eligible to set as default account with state of
             * {@link DefaultAccountAndState#DEFAULT_ACCOUNT_STATE_CLOUD}. May be empty but never
             * null.
             *
             * @param resolver content resolver to query.
             * @return a of cloud accounts that is eligible to set as default account with state of
             * {@link DefaultAccountAndState#DEFAULT_ACCOUNT_STATE_CLOUD}.
             * @throws RuntimeException if the query fails.
             *
             * @hide
             */
            @RequiresPermission(android.Manifest.permission.SET_DEFAULT_ACCOUNT_FOR_CONTACTS)
            @FlaggedApi(Flags.FLAG_NEW_DEFAULT_ACCOUNT_API_ENABLED)
            @SystemApi
            public static @NonNull List<Account> getEligibleCloudAccounts(
                    @NonNull ContentResolver resolver) {
                Bundle response = nullSafeCall(resolver, ContactsContract.AUTHORITY_URI,
                        QUERY_ELIGIBLE_DEFAULT_ACCOUNTS_METHOD, null, null);
                List<Account> result = response.getParcelableArrayList(
                        KEY_ELIGIBLE_DEFAULT_ACCOUNTS, Account.class);
                if (result == null) {
                    return new ArrayList<>();
                }
                return result;
            }



            /**
@@ -9339,30 +9366,6 @@ public final class ContactsContract {
         */
        public static final String KEY_DEFAULT_ACCOUNT = "key_default_account";

        /**
         * Key in the Bundle for the default account state.
         *
         * @hide
         */
        public static final String KEY_DEFAULT_ACCOUNT_STATE =
                "key_default_contacts_account_state";

        /**
         * The method to invoke in order to set the default account.
         *
         * @hide
         */
        public static final String SET_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD =
                "setDefaultAccountForNewContacts";

        /**
         * The method to invoke in order to query the default account.
         *
         * @hide
         */
        public static final String QUERY_DEFAULT_ACCOUNT_FOR_NEW_CONTACTS_METHOD =
                "queryDefaultAccountForNewContacts";

        /**
         * Get the account that is set as the default account for new contacts, which should be
         * initially selected when creating a new contact on contact management apps.