UI fixes for emergency numbers in the old call log.

Bug: 80426301,80426768
Test: Manual
PiperOrigin-RevId: 198783744
Change-Id: Ib704a710680b3cf18e4c3c91cd48e7b8491671ff
diff --git a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
index 9b7741d..48e523d 100644
--- a/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
+++ b/java/com/android/dialer/app/calllog/CallLogListItemViewHolder.java
@@ -599,6 +599,29 @@
     setUpVideoButtonView.setVisibility(View.GONE);
     inviteVideoButtonView.setVisibility(View.GONE);
 
+    // For an emergency number, show "Call details" only.
+    if (PhoneNumberHelper.isLocalEmergencyNumber(context, number)) {
+      createNewContactButtonView.setVisibility(View.GONE);
+      addToExistingContactButtonView.setVisibility(View.GONE);
+      sendMessageView.setVisibility(View.GONE);
+      callWithNoteButtonView.setVisibility(View.GONE);
+      callComposeButtonView.setVisibility(View.GONE);
+      blockReportView.setVisibility(View.GONE);
+      blockView.setVisibility(View.GONE);
+      unblockView.setVisibility(View.GONE);
+      reportNotSpamView.setVisibility(View.GONE);
+      voicemailPlaybackView.setVisibility(View.GONE);
+
+      detailsButtonView.setVisibility(View.VISIBLE);
+      detailsButtonView.setTag(
+          IntentProvider.getCallDetailIntentProvider(
+              callDetailsEntries,
+              buildContact(),
+              /* canReportCallerId = */ false,
+              /* canSupportAssistedDialing = */ false));
+      return;
+    }
+
     if (isFullyUndialableVoicemail()) {
       // Sometimes the voicemail server will report the message is from some non phone number
       // source. If the number does not contains any dialable digit treat it as it is from a unknown
diff --git a/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java b/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
index 44b5a43..4da7fa0 100644
--- a/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
+++ b/java/com/android/dialer/calldetails/CallDetailsHeaderViewHolder.java
@@ -40,6 +40,7 @@
 import com.android.dialer.glidephotomanager.GlidePhotoManagerComponent;
 import com.android.dialer.logging.InteractionEvent;
 import com.android.dialer.logging.Logger;
+import com.android.dialer.phonenumberutil.PhoneNumberHelper;
 import com.android.dialer.widget.BidiTextView;
 
 /**
@@ -157,20 +158,26 @@
             contact.getNameOrNumber(),
             contact.getContactType());
 
-    nameView.setText(contact.getNameOrNumber());
-    if (!TextUtils.isEmpty(contact.getDisplayNumber())) {
-      numberView.setVisibility(View.VISIBLE);
-      String secondaryInfo =
-          TextUtils.isEmpty(contact.getNumberLabel())
-              ? contact.getDisplayNumber()
-              : context.getString(
-                  com.android.contacts.common.R.string.call_subject_type_and_number,
-                  contact.getNumberLabel(),
-                  contact.getDisplayNumber());
-      numberView.setText(secondaryInfo);
+    // Hide the secondary text of the header by default.
+    // We will show it if needed (see below).
+    numberView.setVisibility(View.GONE);
+    numberView.setText(null);
+
+    if (PhoneNumberHelper.isLocalEmergencyNumber(context, contact.getNumber())) {
+      nameView.setText(context.getResources().getString(R.string.emergency_number));
     } else {
-      numberView.setVisibility(View.GONE);
-      numberView.setText(null);
+      nameView.setText(contact.getNameOrNumber());
+      if (!TextUtils.isEmpty(contact.getDisplayNumber())) {
+        numberView.setVisibility(View.VISIBLE);
+        String secondaryInfo =
+            TextUtils.isEmpty(contact.getNumberLabel())
+                ? contact.getDisplayNumber()
+                : context.getString(
+                    com.android.contacts.common.R.string.call_subject_type_and_number,
+                    contact.getNumberLabel(),
+                    contact.getDisplayNumber());
+        numberView.setText(secondaryInfo);
+      }
     }
 
     if (!TextUtils.isEmpty(contact.getSimDetails().getNetwork())) {