From 2d5167b475d64b4bad0f0cde2508bca55c4b7643 Mon Sep 17 00:00:00 2001 From: linyuh Date: Thu, 14 Dec 2017 12:34:31 -0800 Subject: Take into consideration special characters when we do contact match. Bug: 30225112 Test: CallLogGroupBuilderTest, PhoneNumberHelperTest, CallerInfoTest, and Manual (see demo) PiperOrigin-RevId: 179080046 Change-Id: I8e451a6c197a6c3df4260e58d0276a5dc5b9515a --- .../android/dialer/app/calllog/CallLogGroupBuilder.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'java/com/android/dialer/app') diff --git a/java/com/android/dialer/app/calllog/CallLogGroupBuilder.java b/java/com/android/dialer/app/calllog/CallLogGroupBuilder.java index 513c8aa59..a48de0f51 100644 --- a/java/com/android/dialer/app/calllog/CallLogGroupBuilder.java +++ b/java/com/android/dialer/app/calllog/CallLogGroupBuilder.java @@ -189,13 +189,26 @@ public class CallLogGroupBuilder { mGroupCreator.addGroup(count - groupSize, groupSize); } + /** + * Returns true when the two input numbers can be considered identical enough for caller ID + * purposes and put in a call log group. + */ @VisibleForTesting boolean equalNumbers(@Nullable String number1, @Nullable String number2) { if (PhoneNumberHelper.isUriNumber(number1) || PhoneNumberHelper.isUriNumber(number2)) { return compareSipAddresses(number1, number2); - } else { - return PhoneNumberUtils.compare(number1, number2); } + + // PhoneNumberUtils.compare(String, String) ignores special characters such as '#'. For example, + // it thinks "123" and "#123" are identical enough for caller ID purposes. + // When either input number contains special characters, we put the two in the same group iff + // their raw numbers are exactly the same. + if (PhoneNumberHelper.numberHasSpecialChars(number1) + || PhoneNumberHelper.numberHasSpecialChars(number2)) { + return PhoneNumberHelper.sameRawNumbers(number1, number2); + } + + return PhoneNumberUtils.compare(number1, number2); } private boolean isSameAccount(String name1, String name2, String id1, String id2) { -- cgit v1.2.3