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 {