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

Commit bc9e0c29 authored by Tingting Wang's avatar Tingting Wang Committed by Android (Google) Code Review
Browse files

Merge "Add default account call methods APIs."

parents 260119c1 79e57edb
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -34949,6 +34949,7 @@ package android.provider {
  }
  public static final class ContactsContract.Settings implements android.provider.ContactsContract.SettingsColumns {
    method @Nullable public static android.accounts.Account getDefaultAccount(@NonNull android.content.ContentResolver);
    field public static final String ACTION_SET_DEFAULT_ACCOUNT = "android.provider.action.SET_DEFAULT_ACCOUNT";
    field public static final String CONTENT_ITEM_TYPE = "vnd.android.cursor.item/setting";
    field public static final String CONTENT_TYPE = "vnd.android.cursor.dir/setting";
+5 −0
Original line number Diff line number Diff line
@@ -262,6 +262,7 @@ package android {
    field public static final String SERIAL_PORT = "android.permission.SERIAL_PORT";
    field public static final String SET_ACTIVITY_WATCHER = "android.permission.SET_ACTIVITY_WATCHER";
    field public static final String SET_CLIP_SOURCE = "android.permission.SET_CLIP_SOURCE";
    field public static final String SET_DEFAULT_ACCOUNT_FOR_CONTACTS = "android.permission.SET_DEFAULT_ACCOUNT_FOR_CONTACTS";
    field public static final String SET_HARMFUL_APP_WARNINGS = "android.permission.SET_HARMFUL_APP_WARNINGS";
    field public static final String SET_MEDIA_KEY_LISTENER = "android.permission.SET_MEDIA_KEY_LISTENER";
    field public static final String SET_ORIENTATION = "android.permission.SET_ORIENTATION";
@@ -9181,6 +9182,10 @@ package android.provider {
    field @Deprecated public static final String STATE = "state";
  }
  public static final class ContactsContract.Settings implements android.provider.ContactsContract.SettingsColumns {
    method @RequiresPermission(android.Manifest.permission.SET_DEFAULT_ACCOUNT_FOR_CONTACTS) public static void setDefaultAccount(@NonNull android.content.ContentResolver, @Nullable android.accounts.Account);
  }
  public static final class ContactsContract.SimContacts {
    method @RequiresPermission("android.contacts.permission.MANAGE_SIM_ACCOUNTS") public static void addSimAccount(@NonNull android.content.ContentResolver, @NonNull String, @NonNull String, int, int);
    method @RequiresPermission("android.contacts.permission.MANAGE_SIM_ACCOUNTS") public static void removeSimAccounts(@NonNull android.content.ContentResolver, int);
+50 −0
Original line number Diff line number Diff line
@@ -8692,6 +8692,56 @@ public final class ContactsContract {
        @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
        public static final String ACTION_SET_DEFAULT_ACCOUNT =
                "android.provider.action.SET_DEFAULT_ACCOUNT";

        /**
         * The method to invoke in order to set the default account for new contacts.
         *
         * @hide
         */
        public static final String SET_DEFAULT_ACCOUNT_METHOD = "setDefaultAccount";

        /**
         * The method to invoke in order to query the default account for new contacts.
         *
         * @hide
         */
        public static final String QUERY_DEFAULT_ACCOUNT_METHOD = "queryDefaultAccount";

        /**
         * Key in the incoming Bundle for the default account.
         *
         * @hide
         */
        public static final String KEY_DEFAULT_ACCOUNT = "key_default_account";

        /**
         * Return the account that was set to default account for new contacts.
         */
        @Nullable
        public static Account getDefaultAccount(@NonNull ContentResolver resolver) {
            Bundle response = resolver.call(ContactsContract.AUTHORITY_URI,
                    QUERY_DEFAULT_ACCOUNT_METHOD, null, null);
            return response.getParcelable(KEY_DEFAULT_ACCOUNT);
        }

        /**
         * Set the account to be the default account for new contacts.
         *
         * @param account the account to be set to default.
         * @hide
         */
        @SystemApi
        @RequiresPermission(android.Manifest.permission.SET_DEFAULT_ACCOUNT_FOR_CONTACTS)
        public static void setDefaultAccount(@NonNull ContentResolver resolver,
                @Nullable Account account) {
            Bundle extras = new Bundle();
            if (account != null) {
                extras.putString(ACCOUNT_NAME, account.name);
                extras.putString(ACCOUNT_TYPE, account.type);
            }

            resolver.call(ContactsContract.AUTHORITY_URI, SET_DEFAULT_ACCOUNT_METHOD, null, extras);
        }
    }

    /**
+10 −1
Original line number Diff line number Diff line
@@ -755,6 +755,15 @@
        android:description="@string/permdesc_writeContacts"
      android:protectionLevel="dangerous" />

    <!-- Allows an application to set default account for new contacts.
        <p> This permission is only granted to system applications fulfilling the Contacts app role.
        <p>Protection level: internal|role
        @SystemApi
        @hide
    -->
    <permission android:name="android.permission.SET_DEFAULT_ACCOUNT_FOR_CONTACTS"
        android:protectionLevel="internal|role" />

    <!-- ====================================================================== -->
    <!-- Permissions for accessing user's calendar                              -->
    <!-- ====================================================================== -->