aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/java/com/android/internal/telephony/Phone.java22
-rw-r--r--src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java17
2 files changed, 39 insertions, 0 deletions
diff --git a/src/java/com/android/internal/telephony/Phone.java b/src/java/com/android/internal/telephony/Phone.java
index cee3a5820a..0f4f528b72 100644
--- a/src/java/com/android/internal/telephony/Phone.java
+++ b/src/java/com/android/internal/telephony/Phone.java
@@ -715,6 +715,28 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
}
/**
+ * 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 9b44001785..e2418c5acd 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 @@ public class EmergencyNumberTracker extends Handler {
}
/**
+ * 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