Changing to reflect simplified aggregation exception API.
diff --git a/src/com/android/contacts/ViewContactActivity.java b/src/com/android/contacts/ViewContactActivity.java
index 3b80da5..451caa8 100644
--- a/src/com/android/contacts/ViewContactActivity.java
+++ b/src/com/android/contacts/ViewContactActivity.java
@@ -505,49 +505,15 @@
* Given an ID of a constituent contact, splits it off into a separate aggregate.
*/
protected void splitContact(long contactToSplit) {
- long contactToKeep;
- // We are guaranteed to have at least two items in the mContactIds array, because
- // otherwise the "Split" menu item would be disabled.
- if (mContactIds.get(0) != contactToSplit) {
- contactToKeep = mContactIds.get(0);
- } else {
- contactToKeep = mContactIds.get(1);
- }
+ ContentValues values = new ContentValues(3);
+ values.put(AggregationExceptions.AGGREGATE_ID, ContentUris.parseId(mUri));
+ values.put(AggregationExceptions.CONTACT_ID, contactToSplit);
+ values.put(AggregationExceptions.TYPE, AggregationExceptions.TYPE_KEEP_OUT);
- ContentValues values = new ContentValues(3);
- values.put(AggregationExceptions.TYPE, AggregationExceptions.TYPE_NEVER_MATCH);
+ mResolver.update(AggregationExceptions.CONTENT_URI, values, null, null);
- boolean updated = false;
-
- // First see if there is an existing exception for this pair of contacts
- Cursor c = mResolver.query(AggregationExceptions.CONTENT_URI,
- AGGREGATION_EXCEPTIONS_PROJECTION,
- "(" + AggregationExceptions.CONTACT_ID1 + "=" + contactToSplit
- + " AND " + AggregationExceptions.CONTACT_ID2 + "=" + contactToKeep
- + ") OR (" + AggregationExceptions.CONTACT_ID1 + "=" + contactToKeep
- + " AND " + AggregationExceptions.CONTACT_ID2 + "=" + contactToSplit + ")",
- null, null);
-
- try {
- if (c.moveToFirst()) {
- long exceptionId = c.getLong(AGGREGATION_EXCEPTIONS_COL_ID);
- mResolver.update(ContentUris.withAppendedId(AggregationExceptions.CONTENT_URI,
- exceptionId), values, null, null);
- updated = true;
- }
- } finally {
- c.close();
- }
-
- // Otherwise, insert a new exception
- if (!updated) {
- values.put(AggregationExceptions.CONTACT_ID1, contactToSplit);
- values.put(AggregationExceptions.CONTACT_ID2, contactToKeep);
- mResolver.insert(AggregationExceptions.CONTENT_URI, values);
- }
-
- mAdapter.notifyDataSetChanged();
+ mAdapter.notifyDataSetChanged();
}
private ViewEntry getViewEntryForMenuItem(MenuItem item) {