From 75a8d5170399b37d33bced7825a9f6d88a5ec233 Mon Sep 17 00:00:00 2001 From: zachh Date: Mon, 29 Jan 2018 13:45:58 -0800 Subject: Added is_valid and post_dial_portion fields to DialerPhoneNumber. These are frequently used attributes of numbers that we can compute once at parse-time. Also did some general cleanup of DialerPhoneNumberUtil: -Removed unused Future version of parse() -Remove formatToValidE164 now that the new fields are available -Inlined normalizeNumber() Bug: 72563861 Test: existing PiperOrigin-RevId: 183720128 Change-Id: I702dc265360e590439c5352c493ae8a858f36812 --- .../phonelookup/PhoneLookupDataSource.java | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) (limited to 'java/com/android/dialer/calllog/datasources') diff --git a/java/com/android/dialer/calllog/datasources/phonelookup/PhoneLookupDataSource.java b/java/com/android/dialer/calllog/datasources/phonelookup/PhoneLookupDataSource.java index 565a2a333..8fa6b67cc 100644 --- a/java/com/android/dialer/calllog/datasources/phonelookup/PhoneLookupDataSource.java +++ b/java/com/android/dialer/calllog/datasources/phonelookup/PhoneLookupDataSource.java @@ -42,14 +42,12 @@ import com.android.dialer.phonelookup.PhoneLookupInfo; import com.android.dialer.phonelookup.consolidator.PhoneLookupInfoConsolidator; import com.android.dialer.phonelookup.database.contract.PhoneLookupHistoryContract; import com.android.dialer.phonelookup.database.contract.PhoneLookupHistoryContract.PhoneLookupHistory; -import com.android.dialer.phonenumberproto.DialerPhoneNumberUtil; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Maps; import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListeningExecutorService; -import com.google.i18n.phonenumbers.PhoneNumberUtil; import com.google.protobuf.InvalidProtocolBufferException; import java.util.ArrayList; import java.util.Arrays; @@ -192,11 +190,8 @@ public final class PhoneLookupDataSource populateInserts(originalPhoneLookupHistoryDataByAnnotatedCallLogId.build(), mutations); // Compute and save the PhoneLookupHistory rows which can be deleted in onSuccessfulFill. - DialerPhoneNumberUtil dialerPhoneNumberUtil = - new DialerPhoneNumberUtil(PhoneNumberUtil.getInstance()); phoneLookupHistoryRowsToDelete.addAll( - computePhoneLookupHistoryRowsToDelete( - annotatedCallLogIdsByNumber, mutations, dialerPhoneNumberUtil)); + computePhoneLookupHistoryRowsToDelete(annotatedCallLogIdsByNumber, mutations)); // Now compute the rows to update. ImmutableMap.Builder rowsToUpdate = ImmutableMap.builder(); @@ -209,7 +204,8 @@ public final class PhoneLookupDataSource } // Also save the updated information so that it can be written to PhoneLookupHistory // in onSuccessfulFill. - String normalizedNumber = dialerPhoneNumberUtil.normalizeNumber(dialerPhoneNumber); + // Note: This loses country info when number is not valid. + String normalizedNumber = dialerPhoneNumber.getNormalizedNumber(); phoneLookupHistoryRowsToUpdate.put(normalizedNumber, upToDateInfo); } } @@ -417,10 +413,9 @@ public final class PhoneLookupDataSource /** Returned map must have same keys as {@code uniqueDialerPhoneNumbers} */ private ImmutableMap queryPhoneLookupHistoryForNumbers( Context appContext, Set uniqueDialerPhoneNumbers) { - DialerPhoneNumberUtil dialerPhoneNumberUtil = - new DialerPhoneNumberUtil(PhoneNumberUtil.getInstance()); + // Note: This loses country info when number is not valid. Map dialerPhoneNumberToNormalizedNumbers = - Maps.asMap(uniqueDialerPhoneNumbers, dialerPhoneNumberUtil::normalizeNumber); + Maps.asMap(uniqueDialerPhoneNumbers, DialerPhoneNumber::getNormalizedNumber); // Convert values to a set to remove any duplicates that are the result of two // DialerPhoneNumbers mapping to the same normalized number. @@ -543,9 +538,7 @@ public final class PhoneLookupDataSource } private Set computePhoneLookupHistoryRowsToDelete( - Map> annotatedCallLogIdsByNumber, - CallLogMutations mutations, - DialerPhoneNumberUtil dialerPhoneNumberUtil) { + Map> annotatedCallLogIdsByNumber, CallLogMutations mutations) { if (mutations.getDeletes().isEmpty()) { return ImmutableSet.of(); } @@ -555,7 +548,8 @@ public final class PhoneLookupDataSource for (Entry> entry : annotatedCallLogIdsByNumber.entrySet()) { DialerPhoneNumber dialerPhoneNumber = entry.getKey(); Set idsForDialerPhoneNumber = entry.getValue(); - String normalizedNumber = dialerPhoneNumberUtil.normalizeNumber(dialerPhoneNumber); + // Note: This loses country info when number is not valid. + String normalizedNumber = dialerPhoneNumber.getNormalizedNumber(); Set idsForNormalizedNumber = idsByNormalizedNumber.get(normalizedNumber); if (idsForNormalizedNumber == null) { idsForNormalizedNumber = new ArraySet<>(); -- cgit v1.2.3