Add default account call methods APIs.

Test: use it in CP2 and verified.

Bug: 188347310
Change-Id: Iad4a84d8a39a9fd0f3c2d695499f819b2eb926d0
This commit is contained in:
Tingting
2021-08-11 18:02:24 +00:00
parent 37539f2d0e
commit 79e57edb06
4 changed files with 66 additions and 1 deletions

View File

@@ -34900,6 +34900,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

@@ -261,6 +261,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";
@@ -9117,6 +9118,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

@@ -8697,6 +8697,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

@@ -746,7 +746,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 -->