diff options
author | maxwelb <maxwelb@google.com> | 2018-03-21 13:00:28 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-03-21 13:02:00 -0700 |
commit | 33c901987a7010754fc1eddcc1933bfd63458322 (patch) | |
tree | 060db800b9356a3ee86cfc619cbcad0b752270e6 /java/com/android/dialer/app/calllog/PhoneCallDetailsHelper.java | |
parent | 7642b8011e00bf353504440754ffa3f3a7cd8f8c (diff) |
Display "Emergency number" in the call log for emergency numbers
This CL updates the call log to show "Emergency number" for call log rows from
numbers that PhoneNumberUtils.isEmergencyNumber considers to be emergency
numbers.
Bug: 66926712
Test: Manual, see above
PiperOrigin-RevId: 189953302
Change-Id: Ibaae243ead8b918a26f6058164316e042a4f82fd
Diffstat (limited to 'java/com/android/dialer/app/calllog/PhoneCallDetailsHelper.java')
-rw-r--r-- | java/com/android/dialer/app/calllog/PhoneCallDetailsHelper.java | 54 |
1 files changed, 22 insertions, 32 deletions
diff --git a/java/com/android/dialer/app/calllog/PhoneCallDetailsHelper.java b/java/com/android/dialer/app/calllog/PhoneCallDetailsHelper.java index b88a959ed..096488a39 100644 --- a/java/com/android/dialer/app/calllog/PhoneCallDetailsHelper.java +++ b/java/com/android/dialer/app/calllog/PhoneCallDetailsHelper.java @@ -27,6 +27,7 @@ import android.provider.ContactsContract.CommonDataKinds.Phone; import android.support.v4.content.ContextCompat; import android.telecom.PhoneAccount; import android.telecom.PhoneAccountHandle; +import android.telephony.PhoneNumberUtils; import android.text.SpannableString; import android.text.TextUtils; import android.text.format.DateUtils; @@ -199,20 +200,7 @@ public class PhoneCallDetailsHelper views.callAccountLabel.setVisibility(View.GONE); } - final CharSequence nameText; - final CharSequence displayNumber = details.displayNumber; - if (TextUtils.isEmpty(details.getPreferredName())) { - nameText = displayNumber; - // We have a real phone number as "nameView" so make it always LTR - views.nameView.setTextDirection(View.TEXT_DIRECTION_LTR); - } else { - nameText = details.getPreferredName(); - // "nameView" is updated from phone number to contact name after number matching. - // Since TextDirection remains at View.TEXT_DIRECTION_LTR, initialize it. - views.nameView.setTextDirection(View.TEXT_DIRECTION_INHERIT); - } - - views.nameView.setText(nameText); + setNameView(views, details); if (isVoicemail) { int relevantLinkTypes = Linkify.EMAIL_ADDRESSES | Linkify.PHONE_NUMBERS | Linkify.WEB_URLS; @@ -282,6 +270,26 @@ public class PhoneCallDetailsHelper details.isRead ? R.color.call_log_detail_color : R.color.call_log_unread_text_color)); } + private void setNameView(PhoneCallDetailsViews views, PhoneCallDetails details) { + if (!TextUtils.isEmpty(details.getPreferredName())) { + views.nameView.setText(details.getPreferredName()); + // "nameView" is updated from phone number to contact name after number matching. + // Since TextDirection remains at View.TEXT_DIRECTION_LTR, initialize it. + views.nameView.setTextDirection(View.TEXT_DIRECTION_INHERIT); + return; + } + + if (PhoneNumberUtils.isEmergencyNumber(details.number.toString())) { + views.nameView.setText(R.string.emergency_number); + views.nameView.setTextDirection(View.TEXT_DIRECTION_INHERIT); + return; + } + + views.nameView.setText(details.displayNumber); + // We have a real phone number as "nameView" so make it always LTR + views.nameView.setTextDirection(View.TEXT_DIRECTION_LTR); + } + private boolean shouldShowTranscriptionRating( int transcriptionState, PhoneAccountHandle account) { if (transcriptionState != VoicemailCompat.TRANSCRIPTION_AVAILABLE) { @@ -548,24 +556,6 @@ public class PhoneCallDetailsHelper return currentYear != calendar.get(Calendar.YEAR); } - /** Sets the text of the header view for the details page of a phone call. */ - public void setCallDetailsHeader(TextView nameView, PhoneCallDetails details) { - final CharSequence nameText; - if (!TextUtils.isEmpty(details.namePrimary)) { - nameText = details.namePrimary; - } else if (!TextUtils.isEmpty(details.displayNumber)) { - nameText = details.displayNumber; - } else { - nameText = resources.getString(R.string.unknown); - } - - nameView.setText(nameText); - } - - public void setCurrentTimeForTest(long currentTimeMillis) { - currentTimeMillisForTest = currentTimeMillis; - } - /** * Returns the current time in milliseconds since the epoch. * |