Use info from EmergencyPhoneLookup to render UI for an emergency number.

Bug: 71719349
Test: CallLogEntryTextTest, HistoryItemActionModulesBuilderTest
PiperOrigin-RevId: 195694340
Change-Id: Ib53305c36f7ca062ef798ab3f61585d3c71adef3
diff --git a/java/com/android/dialer/calllog/ui/menu/Modules.java b/java/com/android/dialer/calllog/ui/menu/Modules.java
index b06e0fb..cfeca10 100644
--- a/java/com/android/dialer/calllog/ui/menu/Modules.java
+++ b/java/com/android/dialer/calllog/ui/menu/Modules.java
@@ -126,6 +126,7 @@
         .setCanSupportAssistedDialing(canSupportAssistedDialing(row))
         .setCanSupportCarrierVideoCall(row.getNumberAttributes().getCanSupportCarrierVideoCall())
         .setIsBlocked(row.getNumberAttributes().getIsBlocked())
+        .setIsEmergencyNumber(row.getNumberAttributes().getIsEmergencyNumber())
         .setIsSpam(row.getNumberAttributes().getIsSpam())
         .setIsVoicemailCall(row.getIsVoicemailCall())
         .setContactSource(row.getNumberAttributes().getContactSource())
diff --git a/java/com/android/dialer/calllogutils/CallLogEntryText.java b/java/com/android/dialer/calllogutils/CallLogEntryText.java
index cd8fb44..54b1e19 100644
--- a/java/com/android/dialer/calllogutils/CallLogEntryText.java
+++ b/java/com/android/dialer/calllogutils/CallLogEntryText.java
@@ -21,7 +21,6 @@
 import android.text.TextUtils;
 import com.android.dialer.calllog.model.CoalescedRow;
 import com.android.dialer.duo.DuoComponent;
-import com.android.dialer.phonenumberutil.PhoneNumberHelper;
 import com.android.dialer.time.Clock;
 import com.google.common.base.Optional;
 import com.google.common.collect.Collections2;
@@ -44,7 +43,7 @@
    */
   public static CharSequence buildPrimaryText(Context context, CoalescedRow row) {
     // Calls to emergency services should be shown as "Emergency number".
-    if (PhoneNumberHelper.isLocalEmergencyNumber(context, row.getNumber().getNormalizedNumber())) {
+    if (row.getNumberAttributes().getIsEmergencyNumber()) {
       return context.getText(R.string.emergency_number);
     }
 
@@ -110,7 +109,7 @@
   public static CharSequence buildSecondaryTextForEntries(
       Context context, Clock clock, CoalescedRow row) {
     // For emergency numbers, the secondary text should contain only the timestamp.
-    if (PhoneNumberHelper.isLocalEmergencyNumber(context, row.getNumber().getNormalizedNumber())) {
+    if (row.getNumberAttributes().getIsEmergencyNumber()) {
       return CallLogDates.newCallLogTimestampLabel(
           context, clock.currentTimeMillis(), row.getTimestamp());
     }
@@ -168,7 +167,7 @@
      */
 
     // For emergency numbers, the secondary text should contain only the number.
-    if (PhoneNumberHelper.isLocalEmergencyNumber(context, row.getNumber().getNormalizedNumber())) {
+    if (row.getNumberAttributes().getIsEmergencyNumber()) {
       return !row.getFormattedNumber().isEmpty()
           ? row.getFormattedNumber()
           : row.getNumber().getNormalizedNumber();
diff --git a/java/com/android/dialer/historyitemactions/HistoryItemActionModulesBuilder.java b/java/com/android/dialer/historyitemactions/HistoryItemActionModulesBuilder.java
index 86bb79d..5da56a1 100644
--- a/java/com/android/dialer/historyitemactions/HistoryItemActionModulesBuilder.java
+++ b/java/com/android/dialer/historyitemactions/HistoryItemActionModulesBuilder.java
@@ -30,7 +30,6 @@
 import com.android.dialer.duo.Duo;
 import com.android.dialer.duo.DuoComponent;
 import com.android.dialer.logging.ReportingLocation;
-import com.android.dialer.phonenumberutil.PhoneNumberHelper;
 import com.android.dialer.util.CallUtil;
 import com.android.dialer.util.UriUtils;
 import java.util.ArrayList;
@@ -140,7 +139,7 @@
    * capability, and Duo is available, add a Duo video call module.
    */
   public HistoryItemActionModulesBuilder addModuleForVideoCall() {
-    if (isEmergencyNumber()
+    if (moduleInfo.getIsEmergencyNumber()
         || moduleInfo.getIsVoicemailCall()
         || moduleInfo.getIsBlocked()
         || moduleInfo.getIsSpam()) {
@@ -192,7 +191,7 @@
   public HistoryItemActionModulesBuilder addModuleForSendingTextMessage() {
     // TODO(zachh): There are other conditions where this module should not be shown
     // (e.g., business numbers).
-    if (isEmergencyNumber()
+    if (moduleInfo.getIsEmergencyNumber()
         || moduleInfo.getIsVoicemailCall()
         || moduleInfo.getIsBlocked()
         || TextUtils.isEmpty(moduleInfo.getNormalizedNumber())) {
@@ -233,7 +232,7 @@
    * </ul>
    */
   public HistoryItemActionModulesBuilder addModuleForAddingToContacts() {
-    if (isEmergencyNumber()
+    if (moduleInfo.getIsEmergencyNumber()
         || moduleInfo.getIsVoicemailCall()
         || moduleInfo.getIsBlocked()
         || moduleInfo.getIsSpam()
@@ -281,7 +280,7 @@
    * <p>If a number is not blocked or marked as spam, add the "Block/Report spam" module.
    */
   public HistoryItemActionModulesBuilder addModuleForBlockedOrSpamNumber() {
-    if (isEmergencyNumber() || moduleInfo.getIsVoicemailCall()) {
+    if (moduleInfo.getIsEmergencyNumber() || moduleInfo.getIsVoicemailCall()) {
       return this;
     }
 
@@ -401,10 +400,6 @@
         && !UriUtils.isEncodedContactUri(Uri.parse(moduleInfo.getLookupUri()));
   }
 
-  private boolean isEmergencyNumber() {
-    return PhoneNumberHelper.isLocalEmergencyNumber(context, moduleInfo.getNormalizedNumber());
-  }
-
   /**
    * Maps the value of {@link HistoryItemActionModuleInfo#getHost()} to {@link
    * CallInitiationType.Type}, which is required by {@link CallIntentBuilder} to build a call
diff --git a/java/com/android/dialer/historyitemactions/history_item_action_module_info.proto b/java/com/android/dialer/historyitemactions/history_item_action_module_info.proto
index 99071a7..f7022c2 100644
--- a/java/com/android/dialer/historyitemactions/history_item_action_module_info.proto
+++ b/java/com/android/dialer/historyitemactions/history_item_action_module_info.proto
@@ -10,7 +10,7 @@
 import "java/com/android/dialer/logging/contact_source.proto";
 
 // Contains information needed to construct items (modules) in a bottom sheet.
-// Next ID: 16
+// Next ID: 17
 message HistoryItemActionModuleInfo {
   // The dialer-normalized version of a phone number.
   // See DialerPhoneNumber.normalized_number.
@@ -66,4 +66,7 @@
     VOICEMAIL = 2;
   }
   optional Host host = 15;
+
+  // Whether the number is an emergency number.
+  optional bool is_emergency_number = 16;
 }
diff --git a/java/com/android/dialer/voicemail/listui/menu/Modules.java b/java/com/android/dialer/voicemail/listui/menu/Modules.java
index dcd9116..5a9a711 100644
--- a/java/com/android/dialer/voicemail/listui/menu/Modules.java
+++ b/java/com/android/dialer/voicemail/listui/menu/Modules.java
@@ -58,6 +58,7 @@
         .setCanSupportCarrierVideoCall(
             voicemailEntry.getNumberAttributes().getCanSupportCarrierVideoCall())
         .setIsBlocked(voicemailEntry.getNumberAttributes().getIsBlocked())
+        .setIsEmergencyNumber(voicemailEntry.getNumberAttributes().getIsEmergencyNumber())
         .setIsSpam(voicemailEntry.getNumberAttributes().getIsSpam())
         // A voicemail call is an outgoing call to the voicemail box.
         // Voicemail entries are not voicemail calls.