summaryrefslogtreecommitdiffstats
path: root/java/com/android/dialer/calldetails
diff options
context:
space:
mode:
authorzachh <zachh@google.com>2018-01-26 16:28:44 -0800
committerCopybara-Service <copybara-piper@google.com>2018-01-26 16:30:20 -0800
commit26f520249eccdcf2352806ba8d6a54bb8e5045a6 (patch)
treeb49fe3352268663ae05c447f0f088ccdc9df585b /java/com/android/dialer/calldetails
parent29be3926b41f09a7f8fab9845ce3d0d7bd216620 (diff)
downloadandroid_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.java19
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();
}
}