Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 558ef157 authored by Tyler Gunn's avatar Tyler Gunn
Browse files

Add helper method in phone to get new carrier config key.

Also, add method to return all emergency numbers that have the specified
number.
Flag: This is a cherry-pick from udc-qpr-dev, so no flag is needed.
Test: See other cls for actual tests.
Bug: 281934614
Change-Id: I25f627fdadcbc512e045302a5ba52e3ed8a89cbc
parent 7a2c3eb2
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -726,6 +726,28 @@ public abstract class Phone extends Handler implements PhoneInternalInterface {
                CarrierConfigManager.KEY_PREVENT_CLIR_ACTIVATION_AND_DEACTIVATION_CODE_BOOL);
    }

    /**
     * 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
+17 −0
Original line number Diff line number Diff line
@@ -934,6 +934,23 @@ public class EmergencyNumberTracker extends Handler {
        return null;
    }

    /**
     * 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