Merge UQ1A.231205.015
Bug: 308969284
Merged-In: I25f627fdadcbc512e045302a5ba52e3ed8a89cbc
Change-Id: I1fbd86e4d1ba15fffe7da32728b2b0ed489e20c1
diff --git a/src/java/com/android/internal/telephony/Phone.java b/src/java/com/android/internal/telephony/Phone.java
index cee3a58..0f4f528 100644
--- a/src/java/com/android/internal/telephony/Phone.java
+++ b/src/java/com/android/internal/telephony/Phone.java
@@ -715,6 +715,28 @@
}
/**
+ * Determines if the carrier prefers to use an in service sim for a normal routed emergency
+ * call.
+ * @return true when carrier config
+ * {@link CarrierConfigManager#KEY_PREFER_IN_SERVICE_SIM_FOR_NORMAL_ROUTED_EMERGENCY_CALLS_BOOL}
+ * is true.
+ */
+ public boolean shouldPreferInServiceSimForNormalRoutedEmergencyCall() {
+ CarrierConfigManager configManager = (CarrierConfigManager)
+ getContext().getSystemService(Context.CARRIER_CONFIG_SERVICE);
+ PersistableBundle b = configManager.getConfigForSubId(getSubId(), CarrierConfigManager
+ .KEY_PREFER_IN_SERVICE_SIM_FOR_NORMAL_ROUTED_EMERGENCY_CALLS_BOOL);
+ if (b != null) {
+ return b.getBoolean(CarrierConfigManager
+ .KEY_PREFER_IN_SERVICE_SIM_FOR_NORMAL_ROUTED_EMERGENCY_CALLS_BOOL,
+ false);
+ } else {
+ // Default value set in CarrierConfigManager
+ return false;
+ }
+ }
+
+ /**
* When overridden the derived class needs to call
* super.handleMessage(msg) so this method has a
* a chance to process the message.
diff --git a/src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java b/src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java
index 9b44001..e2418c5 100644
--- a/src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java
+++ b/src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java
@@ -935,6 +935,23 @@
}
/**
+ * Get a list of the {@link EmergencyNumber}s that have the corresponding emergency number.
+ * Note: {@link #getEmergencyNumber(String)} assumes there is ONLY one record for a phone number
+ * when in reality there CAN be multiple instances if the same number is reported by the radio
+ * for a specific mcc and the emergency number database specifies the number without an mcc
+ * specified.
+ *
+ * @param emergencyNumber the emergency number to find.
+ * @return the list of emergency numbers matching.
+ */
+ public List<EmergencyNumber> getEmergencyNumbers(String emergencyNumber) {
+ final String toFind = PhoneNumberUtils.stripSeparators(emergencyNumber);
+ return getEmergencyNumberList().stream()
+ .filter(num -> num.getNumber().equals(toFind))
+ .toList();
+ }
+
+ /**
* Get the emergency service categories for the corresponding emergency number. The only
* trusted sources for the categories are the
* {@link EmergencyNumber#EMERGENCY_NUMBER_SOURCE_NETWORK_SIGNALING} and