summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/providers/contacts/ContactAggregator.java4
-rw-r--r--tests/src/com/android/providers/contacts/ContactAggregatorTest.java2
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);