diff options
author | zachh <zachh@google.com> | 2018-01-26 16:28:44 -0800 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-01-26 16:30:20 -0800 |
commit | 26f520249eccdcf2352806ba8d6a54bb8e5045a6 (patch) | |
tree | b49fe3352268663ae05c447f0f088ccdc9df585b /java/com/android/dialer/calldetails | |
parent | 29be3926b41f09a7f8fab9845ce3d0d7bd216620 (diff) | |
download | android_packages_apps_Dialer-26f520249eccdcf2352806ba8d6a54bb8e5045a6.tar.gz android_packages_apps_Dialer-26f520249eccdcf2352806ba8d6a54bb8e5045a6.tar.bz2 android_packages_apps_Dialer-26f520249eccdcf2352806ba8d6a54bb8e5045a6.zip |
Reworked the internals of DialerPhoneNumber.
It turns out the storing the libphonenumber representation of the number is not particularly useful because even formatting these objects cannot be done on the main thread. Rather than propagate the requirement of using PhoneNumberUtil (and background threads by extension) in the call log UI, we now just store a dialer-normalized version of the number which contains all information required by the UI in a way that allows us to avoid any background work in the UI code.
Bug: 72563861
Test: existing
PiperOrigin-RevId: 183463907
Change-Id: I4bdadaccb7a84033b3c72c54fe3833064f587ee3
Diffstat (limited to 'java/com/android/dialer/calldetails')
-rw-r--r-- | java/com/android/dialer/calldetails/CallDetailsActivity.java | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/java/com/android/dialer/calldetails/CallDetailsActivity.java b/java/com/android/dialer/calldetails/CallDetailsActivity.java index bf978ecf3..26b38ed82 100644 --- a/java/com/android/dialer/calldetails/CallDetailsActivity.java +++ b/java/com/android/dialer/calldetails/CallDetailsActivity.java @@ -40,7 +40,6 @@ import android.support.v7.widget.Toolbar; import android.view.View; import android.widget.Toast; import com.android.dialer.CoalescedIds; -import com.android.dialer.DialerPhoneNumber; import com.android.dialer.assisteddialing.ui.AssistedDialingSettingActivity; import com.android.dialer.calldetails.CallDetailsEntries.CallDetailsEntry; import com.android.dialer.callintent.CallInitiationType; @@ -65,13 +64,14 @@ import com.android.dialer.logging.DialerImpression; import com.android.dialer.logging.Logger; import com.android.dialer.logging.UiAction; import com.android.dialer.performancereport.PerformanceReport; -import com.android.dialer.phonenumberproto.DialerPhoneNumberUtil; import com.android.dialer.postcall.PostCall; import com.android.dialer.precall.PreCall; import com.android.dialer.protos.ProtoParsers; import com.google.common.base.Optional; import com.google.common.base.Preconditions; +import com.google.i18n.phonenumbers.NumberParseException; import com.google.i18n.phonenumbers.PhoneNumberUtil; +import com.google.i18n.phonenumbers.Phonenumber.PhoneNumber; import java.lang.ref.WeakReference; import java.util.Collections; import java.util.List; @@ -441,10 +441,17 @@ public class CallDetailsActivity extends AppCompatActivity { @Override public Integer doInBackground(@NonNull String phoneNumber) { - DialerPhoneNumberUtil dialerPhoneNumberUtil = - new DialerPhoneNumberUtil(PhoneNumberUtil.getInstance()); - DialerPhoneNumber parsedNumber = dialerPhoneNumberUtil.parse(phoneNumber, null); - return parsedNumber.getDialerInternalPhoneNumber().getCountryCode(); + PhoneNumber parsedNumber = null; + try { + parsedNumber = PhoneNumberUtil.getInstance().parse(phoneNumber, null); + } catch (NumberParseException e) { + LogUtil.w( + "AssistedDialingNumberParseWorker.doInBackground", + "couldn't parse phone number: " + LogUtil.sanitizePii(phoneNumber), + e); + return 0; + } + return parsedNumber.getCountryCode(); } } |