Return error for bad arguments from ContactSaveService
Let the result receiver know when a request is bad.
Bug: 28968298
Change-Id: Ia28988f0e8ec407ca20c3cf9ba862170a14e0fda
diff --git a/src/com/android/contacts/ContactSaveService.java b/src/com/android/contacts/ContactSaveService.java
index b9fc949..b68d34c 100755
--- a/src/com/android/contacts/ContactSaveService.java
+++ b/src/com/android/contacts/ContactSaveService.java
@@ -133,6 +133,7 @@
public static final int CP2_ERROR = 0;
public static final int CONTACTS_LINKED = 1;
public static final int CONTACTS_SPLIT = 2;
+ public static final int BAD_ARGUMENTS = 3;
private static final HashSet<String> ALLOWED_DATA_COLUMNS = Sets.newHashSet(
Data.MIMETYPE,
@@ -1155,14 +1156,17 @@
private void splitContact(Intent intent) {
final long rawContactIds[][] = (long[][]) intent
.getSerializableExtra(EXTRA_RAW_CONTACT_IDS);
+ final ResultReceiver receiver = intent.getParcelableExtra(EXTRA_RESULT_RECEIVER);
if (rawContactIds == null) {
Log.e(TAG, "Invalid argument for splitContact request");
+ if (receiver != null) {
+ receiver.send(BAD_ARGUMENTS, new Bundle());
+ }
return;
}
final int batchSize = MAX_CONTACTS_PROVIDER_BATCH_SIZE;
final ContentResolver resolver = getContentResolver();
final ArrayList<ContentProviderOperation> operations = new ArrayList<>(batchSize);
- final ResultReceiver receiver = intent.getParcelableExtra(EXTRA_RESULT_RECEIVER);
for (int i = 0; i < rawContactIds.length; i++) {
for (int j = 0; j < rawContactIds.length; j++) {
if (i != j) {
@@ -1295,6 +1299,9 @@
final long[][] separatedRawContactIds = getSeparatedRawContactIds(contactIds);
if (rawContactIds == null) {
Log.e(TAG, "Invalid arguments for joinSeveralContacts request");
+ if (receiver != null) {
+ receiver.send(BAD_ARGUMENTS, new Bundle());
+ }
return;
}