diff options
-rw-r--r-- | src/java/com/android/internal/telephony/Phone.java | 22 | ||||
-rw-r--r-- | src/java/com/android/internal/telephony/emergency/EmergencyNumberTracker.java | 17 |
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 |