From 888733af75fd738dd1b503ab8a77c5eb3212d575 Mon Sep 17 00:00:00 2001 From: zachh Date: Thu, 14 Dec 2017 00:48:12 -0800 Subject: Support normalization of numbers in Cp2PhoneLookup. Bug: 34672501 Test: unit PiperOrigin-RevId: 179012381 Change-Id: Icb78c73e243702a71f1a48692151b696ae2ac95f --- .../phonenumberproto/DialerPhoneNumberUtil.java | 24 +++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'java/com/android/dialer/phonenumberproto') diff --git a/java/com/android/dialer/phonenumberproto/DialerPhoneNumberUtil.java b/java/com/android/dialer/phonenumberproto/DialerPhoneNumberUtil.java index ac011d43a..d23b5a19d 100644 --- a/java/com/android/dialer/phonenumberproto/DialerPhoneNumberUtil.java +++ b/java/com/android/dialer/phonenumberproto/DialerPhoneNumberUtil.java @@ -25,6 +25,7 @@ import com.android.dialer.DialerPhoneNumber; import com.android.dialer.DialerPhoneNumber.RawInput; import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; +import com.google.common.base.Optional; import com.google.common.util.concurrent.ListenableFuture; import com.google.common.util.concurrent.ListeningExecutorService; import com.google.i18n.phonenumbers.NumberParseException; @@ -127,17 +128,30 @@ public class DialerPhoneNumberUtil { } /** - * Formats the provided number to e164 format. May return raw number if number is unparseable. + * Formats the provided number to e164 format or return raw number if number is unparseable. * * @see PhoneNumberUtil#format(PhoneNumber, PhoneNumberFormat) */ @WorkerThread - public String formatToE164(@NonNull DialerPhoneNumber number) { + public String normalizeNumber(DialerPhoneNumber number) { + Assert.isWorkerThread(); + return formatToE164(number).or(number.getRawInput().getNumber()); + } + + /** + * Formats the provided number to e164 format if possible. + * + * @see PhoneNumberUtil#format(PhoneNumber, PhoneNumberFormat) + */ + @WorkerThread + public Optional formatToE164(DialerPhoneNumber number) { Assert.isWorkerThread(); if (number.hasDialerInternalPhoneNumber()) { - return phoneNumberUtil.format( - Converter.protoToPojo(number.getDialerInternalPhoneNumber()), PhoneNumberFormat.E164); + return Optional.of( + phoneNumberUtil.format( + Converter.protoToPojo(number.getDialerInternalPhoneNumber()), + PhoneNumberFormat.E164)); } - return number.getRawInput().getNumber(); + return Optional.absent(); } } -- cgit v1.2.3