am 5ff0223b: am 82cb1d2d: am 4f1e51fe: am 8879cc75: am e5bd832d: Fix failing tests due to logic changes in the new aggregator.
* commit '5ff0223bd9b1ee8b32f53c7b42126200bbb0e27a':
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 6a7a1bc..c9320a5 100644
--- a/tests/src/com/android/providers/contacts/ContactsProvider2Test.java
+++ b/tests/src/com/android/providers/contacts/ContactsProvider2Test.java
@@ -8980,12 +8980,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>();
@@ -9055,7 +9061,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),
@@ -9080,7 +9086,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),
@@ -9093,7 +9099,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.
*