Merge "Add default account call methods APIs."

This commit is contained in:
Tingting Wang
2021-10-05 20:34:39 +00:00
committed by Android (Google) Code Review
4 changed files with 66 additions and 1 deletions

View File

@@ -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";

View File

@@ -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);

View File

@@ -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);
}
}
/**

View File

@@ -753,7 +753,16 @@
android:permissionGroup="android.permission-group.UNDEFINED"
android:label="@string/permlab_writeContacts"
android:description="@string/permdesc_writeContacts"
android:protectionLevel="dangerous" />
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 -->