am 82cb1d2d: am 4f1e51fe: am 8879cc75: am e5bd832d: Fix failing tests due to logic changes in the new aggregator.

* commit '82cb1d2d62841fc74ce6dfe4919780f45a52a3f4':
  Fix failing tests due to logic changes in the new aggregator.
diff --git a/src/com/android/providers/contacts/aggregation/AbstractContactAggregator.java b/src/com/android/providers/contacts/aggregation/AbstractContactAggregator.java
index c18c1d6..5895f51 100644
--- a/src/com/android/providers/contacts/aggregation/AbstractContactAggregator.java
+++ b/src/com/android/providers/contacts/aggregation/AbstractContactAggregator.java
@@ -867,8 +867,6 @@
             contactId = mContactInsert.executeInsert();
         }
         for (Long rawContactId : rawContactIds) {
-            // Regrouped contacts should automatically be unpinned.
-            unpinRawContact(rawContactId);
             setContactIdAndMarkAggregated(rawContactId, contactId);
             setPresenceContactId(rawContactId, contactId);
         }
diff --git a/src/com/android/providers/contacts/aggregation/ContactAggregator2.java b/src/com/android/providers/contacts/aggregation/ContactAggregator2.java
index 9beb6c2..5372bbd 100644
--- a/src/com/android/providers/contacts/aggregation/ContactAggregator2.java
+++ b/src/com/android/providers/contacts/aggregation/ContactAggregator2.java
@@ -340,7 +340,7 @@
                     contactId = currentCidForRawContact;
                     for (Long connectedRawContactId : connectedRawContactIds) {
                         Long cid = matchingCandidates.getContactId(connectedRawContactId);
-                        if (cid != null && cid != contactId) {
+                        if (cid != null && !cid.equals(contactId)) {
                             cidsNeedToBeUpdated.add(cid);
                         }
                     }
diff --git a/tests/src/com/android/providers/contacts/ContactsProvider2Test.java b/tests/src/com/android/providers/contacts/ContactsProvider2Test.java
index 4f05f88..7072763 100644
--- a/tests/src/com/android/providers/contacts/ContactsProvider2Test.java
+++ b/tests/src/com/android/providers/contacts/ContactsProvider2Test.java
@@ -8568,12 +8568,18 @@
     }
 
     public void testPinnedPositionsAfterJoinAndSplit() {
-        final DatabaseAsserts.ContactIdPair i1 = DatabaseAsserts.assertAndCreateContact(mResolver);
-        final DatabaseAsserts.ContactIdPair i2 = DatabaseAsserts.assertAndCreateContact(mResolver);
-        final DatabaseAsserts.ContactIdPair i3 = DatabaseAsserts.assertAndCreateContact(mResolver);
-        final DatabaseAsserts.ContactIdPair i4 = DatabaseAsserts.assertAndCreateContact(mResolver);
-        final DatabaseAsserts.ContactIdPair i5 = DatabaseAsserts.assertAndCreateContact(mResolver);
-        final DatabaseAsserts.ContactIdPair i6 = DatabaseAsserts.assertAndCreateContact(mResolver);
+        final DatabaseAsserts.ContactIdPair i1 = DatabaseAsserts.assertAndCreateContactWithName(
+                mResolver, "A", "Smith");
+        final DatabaseAsserts.ContactIdPair i2 = DatabaseAsserts.assertAndCreateContactWithName(
+                mResolver, "B", "Smith");
+        final DatabaseAsserts.ContactIdPair i3 = DatabaseAsserts.assertAndCreateContactWithName(
+                mResolver, "C", "Smith");
+        final DatabaseAsserts.ContactIdPair i4 = DatabaseAsserts.assertAndCreateContactWithName(
+                mResolver, "D", "Smith");
+        final DatabaseAsserts.ContactIdPair i5 = DatabaseAsserts.assertAndCreateContactWithName(
+                mResolver, "E", "Smith");
+        final DatabaseAsserts.ContactIdPair i6 = DatabaseAsserts.assertAndCreateContactWithName(
+                mResolver, "F", "Smith");
 
         final ArrayList<ContentProviderOperation> operations =
                 new ArrayList<ContentProviderOperation>();
@@ -8643,7 +8649,7 @@
 
         // raw contacts should be unpinned after being split, but still starred
         assertStoredValuesWithProjection(RawContacts.CONTENT_URI,
-                cv(RawContacts._ID, i1.mRawContactId, RawContacts.PINNED, PinnedPositions.UNPINNED,
+                cv(RawContacts._ID, i1.mRawContactId, RawContacts.PINNED, 1,
                         RawContacts.STARRED, 1),
                 cv(RawContacts._ID, i2.mRawContactId, RawContacts.PINNED, 2,
                         RawContacts.STARRED, 1),
@@ -8668,7 +8674,7 @@
         final long cId4 = RawContactUtil.queryContactIdByRawContactId(mResolver, i4.mRawContactId);
 
         assertStoredValuesWithProjection(Contacts.CONTENT_URI,
-                cv(Contacts._ID, cId1, Contacts.PINNED, PinnedPositions.UNPINNED),
+                cv(Contacts._ID, cId1, Contacts.PINNED, 1),
                 cv(Contacts._ID, i2.mContactId, Contacts.PINNED, 2),
                 cv(Contacts._ID, cId4, Contacts.PINNED, PinnedPositions.UNPINNED),
                 cv(Contacts._ID, i5.mContactId, Contacts.PINNED, PinnedPositions.DEMOTED),
@@ -8681,7 +8687,7 @@
 
         // The resulting contact should have a pinned value of 6
         assertStoredValuesWithProjection(Contacts.CONTENT_URI,
-                cv(Contacts._ID, cId1, Contacts.PINNED, PinnedPositions.UNPINNED),
+                cv(Contacts._ID, cId1, Contacts.PINNED, 1),
                 cv(Contacts._ID, i2.mContactId, Contacts.PINNED, 2),
                 cv(Contacts._ID, cId4, Contacts.PINNED, PinnedPositions.UNPINNED),
                 cv(Contacts._ID, i5.mContactId, Contacts.PINNED, 6)
diff --git a/tests/src/com/android/providers/contacts/testutil/DatabaseAsserts.java b/tests/src/com/android/providers/contacts/testutil/DatabaseAsserts.java
index ac4df17..2af9829 100644
--- a/tests/src/com/android/providers/contacts/testutil/DatabaseAsserts.java
+++ b/tests/src/com/android/providers/contacts/testutil/DatabaseAsserts.java
@@ -64,6 +64,21 @@
     }
 
     /**
+     * Create a contact with name and assert that the record exists.
+     *
+     * @return The created contact id pair.
+     */
+    public static ContactIdPair assertAndCreateContactWithName(ContentResolver resolver,
+            String firstName, String lastName) {
+        long rawContactId = RawContactUtil.createRawContactWithName(resolver, firstName, lastName);
+
+        long contactId = RawContactUtil.queryContactIdByRawContactId(resolver, rawContactId);
+        MoreAsserts.assertNotEqual(CommonDatabaseUtils.NOT_FOUND, contactId);
+
+        return new ContactIdPair(contactId, rawContactId);
+    }
+
+    /**
      * Asserts that a contact id was deleted, has a delete log, and that log has a timestamp greater
      * than the given timestamp.
      *