summaryrefslogtreecommitdiff
path: root/java/com/android/dialer/calllog/database/Coalescer.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/calllog/database/Coalescer.java')
-rw-r--r--java/com/android/dialer/calllog/database/Coalescer.java23
1 files changed, 14 insertions, 9 deletions
diff --git a/java/com/android/dialer/calllog/database/Coalescer.java b/java/com/android/dialer/calllog/database/Coalescer.java
index 63fa9f828..a8a8f2f1d 100644
--- a/java/com/android/dialer/calllog/database/Coalescer.java
+++ b/java/com/android/dialer/calllog/database/Coalescer.java
@@ -20,11 +20,13 @@ import android.database.Cursor;
import android.database.MatrixCursor;
import android.support.annotation.NonNull;
import android.support.annotation.WorkerThread;
+import android.telecom.PhoneAccountHandle;
import com.android.dialer.DialerPhoneNumber;
import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.AnnotatedCallLog;
import com.android.dialer.calllog.database.contract.AnnotatedCallLogContract.CoalescedAnnotatedCallLog;
import com.android.dialer.calllog.datasources.CallLogDataSource;
import com.android.dialer.calllog.datasources.DataSources;
+import com.android.dialer.calllogutils.PhoneAccountUtils;
import com.android.dialer.common.Assert;
import com.android.dialer.phonenumberproto.DialerPhoneNumberUtil;
import com.google.i18n.phonenumbers.PhoneNumberUtil;
@@ -131,11 +133,19 @@ public class Coalescer {
private static boolean rowsShouldBeCombined(
DialerPhoneNumberUtil dialerPhoneNumberUtil, ContentValues row1, ContentValues row2) {
// Don't combine rows which don't use the same phone account.
- if (!Objects.equals(
- row1.getAsString(AnnotatedCallLog.PHONE_ACCOUNT_LABEL),
- row2.getAsString(AnnotatedCallLog.PHONE_ACCOUNT_LABEL))) {
+ PhoneAccountHandle phoneAccount1 =
+ PhoneAccountUtils.getAccount(
+ row1.getAsString(AnnotatedCallLog.PHONE_ACCOUNT_COMPONENT_NAME),
+ row1.getAsString(AnnotatedCallLog.PHONE_ACCOUNT_ID));
+ PhoneAccountHandle phoneAccount2 =
+ PhoneAccountUtils.getAccount(
+ row2.getAsString(AnnotatedCallLog.PHONE_ACCOUNT_COMPONENT_NAME),
+ row2.getAsString(AnnotatedCallLog.PHONE_ACCOUNT_ID));
+
+ if (!Objects.equals(phoneAccount1, phoneAccount2)) {
return false;
}
+
DialerPhoneNumber number1;
DialerPhoneNumber number2;
try {
@@ -153,13 +163,8 @@ public class Coalescer {
throw Assert.createAssertionFailException("error parsing DialerPhoneNumber proto", e);
}
- if (!number1.hasDialerInternalPhoneNumber() && !number2.hasDialerInternalPhoneNumber()) {
- // Empty numbers should not be combined.
- return false;
- }
-
if (!number1.hasDialerInternalPhoneNumber() || !number2.hasDialerInternalPhoneNumber()) {
- // An empty number should not be combined with a non-empty number.
+ // An empty number should not be combined with any other number.
return false;
}
return dialerPhoneNumberUtil.isExactMatch(number1, number2);