Changing aggregation exception API.
Switching from contact-contact pairs to aggregate-contact pairs
diff --git a/core/java/android/provider/ContactsContract.java b/core/java/android/provider/ContactsContract.java
index b9c9236..d98842e 100644
--- a/core/java/android/provider/ContactsContract.java
+++ b/core/java/android/provider/ContactsContract.java
@@ -948,7 +948,8 @@
/**
* Constants for the contact aggregation exceptions table, which contains
- * aggregation rules overriding those used by automatic aggregation.
+ * aggregation rules overriding those used by automatic aggregation. This type only
+ * supports query and update. Neither insert nor delete are supported.
*/
public static final class AggregationExceptions implements BaseColumns {
/**
@@ -974,26 +975,39 @@
"vnd.android.cursor.item/aggregation_exception";
/**
- * The type of exception: {@link #TYPE_NEVER_MATCH} or {@link #TYPE_ALWAYS_MATCH}.
+ * The type of exception: {@link #TYPE_KEEP_IN}, {@link #TYPE_KEEP_OUT} or
+ * {@link #TYPE_AUTOMATIC}.
*
* <P>Type: INTEGER</P>
*/
public static final String TYPE = "type";
- public static final int TYPE_NEVER_MATCH = 0;
- public static final int TYPE_ALWAYS_MATCH = 1;
-
/**
- * A reference to the {@link android.provider.ContactsContract.Contacts#_ID} of one of
- * the contacts that the rule applies to.
+ * Allows the provider to automatically decide whether the aggregate should include
+ * a particular contact or not.
*/
- public static final String CONTACT_ID1 = "contact_id1";
+ public static final int TYPE_AUTOMATIC = 0;
/**
- * A reference to the {@link android.provider.ContactsContract.Contacts#_ID} of the other
+ * Makes sure that the specified contact is included in the specified aggregate.
+ */
+ public static final int TYPE_KEEP_IN = 1;
+
+ /**
+ * Makes sure that the specified contact is NOT included in the specified aggregate.
+ */
+ public static final int TYPE_KEEP_OUT = 2;
+
+ /**
+ * A reference to the {@link Aggregates#_ID} of the aggregate that the rule applies to.
+ */
+ public static final String AGGREGATE_ID = "aggregate_id";
+
+ /**
+ * A reference to the {@link android.provider.ContactsContract.Contacts#_ID} of the
* contact that the rule applies to.
*/
- public static final String CONTACT_ID2 = "contact_id2";
+ public static final String CONTACT_ID = "contact_id";
}
private interface RestrictionExceptionsColumns {