diff options
-rw-r--r-- | src/com/android/providers/contacts/ContactAggregator.java | 4 | ||||
-rw-r--r-- | tests/src/com/android/providers/contacts/ContactAggregatorTest.java | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/com/android/providers/contacts/ContactAggregator.java b/src/com/android/providers/contacts/ContactAggregator.java index b3a3baad..314ed0ab 100644 --- a/src/com/android/providers/contacts/ContactAggregator.java +++ b/src/com/android/providers/contacts/ContactAggregator.java @@ -539,8 +539,8 @@ public class ContactAggregator { // If we found an aggregate to join, but it already contains raw contacts from // the same account, not only will we not join it, but also we will split // that other aggregate - if (contactId != -1 && containsRawContactsFromAccount( - db, contactId, accountType, accountName)) { + if (contactId != -1 && contactId != currentContactId && + containsRawContactsFromAccount(db, contactId, accountType, accountName)) { contactIdToSplit = contactId; contactId = -1; } diff --git a/tests/src/com/android/providers/contacts/ContactAggregatorTest.java b/tests/src/com/android/providers/contacts/ContactAggregatorTest.java index 66675648..328b03ce 100644 --- a/tests/src/com/android/providers/contacts/ContactAggregatorTest.java +++ b/tests/src/com/android/providers/contacts/ContactAggregatorTest.java @@ -547,6 +547,8 @@ public class ContactAggregatorTest extends BaseContactsProvider2Test { long rawContactId1 = createRawContactWithName("John", "Doe", ACCOUNT_1); long rawContactId2 = createRawContactWithName("John", "Doe", ACCOUNT_2); long rawContactId3 = createRawContactWithName("John", "Doe", ACCOUNT_3); + assertAggregated(rawContactId1, rawContactId2); + assertAggregated(rawContactId1, rawContactId3); setAggregationException( AggregationExceptions.TYPE_KEEP_TOGETHER, rawContactId1, rawContactId2); assertAggregated(rawContactId1, rawContactId2); |