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

Commit d4ce9b01 authored by Jack Nudelman's avatar Jack Nudelman Committed by Automerger Merge Worker
Browse files

Merge "Allow test emergency call to remove all radio off reasons." am: 2ab92cc4

Original change: https://android-review.googlesource.com/c/platform/frameworks/opt/telephony/+/1741673

Change-Id: I05f2bdcaa017b82917dcce2469886914009473fa
parents 54845fa4 2ab92cc4
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
@@ -1677,6 +1677,16 @@ public class GsmCdmaPhone extends Phone {
        }
    }

    @Override
    public void setRadioPowerOnForTestEmergencyCall(boolean isSelectedPhoneForEmergencyCall) {
        mSST.clearAllRadioOffReasons();

        // We don't want to have forEmergency call be true to prevent radio emergencyDial command
        // from being called for a test emergency number because the network may not be able to
        // find emergency routing for it and dial it do the default emergency services line.
        setRadioPower(true, false, isSelectedPhoneForEmergencyCall, false);
    }

    @Override
    public void setRadioPower(boolean power, boolean forEmergencyCall,
            boolean isSelectedPhoneForEmergencyCall, boolean forceApply) {
+8 −0
Original line number Diff line number Diff line
@@ -580,6 +580,14 @@ public interface PhoneInternalInterface {
        setRadioPower(power, false, false, false);
    }

    /**
     * Sets the radio power on for a test emergency number.
     *
     * @param isSelectedPhoneForEmergencyCall true means this phone / modem is selected to place
     *                                  emergency call after turning power on.
     */
    default void setRadioPowerOnForTestEmergencyCall(boolean isSelectedPhoneForEmergencyCall) {}

    /**
     * Sets the radio power on/off state with option to specify whether it's for emergency call
     * (off is sometimes called "airplane mode"). Current state can be gotten via
+10 −2
Original line number Diff line number Diff line
@@ -1085,6 +1085,14 @@ public class ServiceStateTracker extends Handler {
        return sRadioPowerOffReasons;
    }

    /**
     * Clear all the radio off reasons. This should be done when turning radio off for genuine or
     * test emergency calls.
     */
    public void clearAllRadioOffReasons() {
        sRadioPowerOffReasons.clear();
    }

    /**
     * Turn on or off radio power.
     */
@@ -1107,7 +1115,7 @@ public class ServiceStateTracker extends Handler {
     * Turn on or off radio power with option to specify whether it's for emergency call and specify
     * a reason for setting the power state.
     * More details check {@link PhoneInternalInterface#setRadioPower(
     * boolean, boolean, boolean, boolean, String)}.
     * boolean, boolean, boolean, boolean, int)}.
     */
    public void setRadioPowerForReason(boolean power, boolean forEmergencyCall,
            boolean isSelectedPhoneForEmergencyCall, boolean forceApply, int reason) {
@@ -1116,7 +1124,7 @@ public class ServiceStateTracker extends Handler {

        if (power) {
            if (forEmergencyCall) {
                sRadioPowerOffReasons.clear();
                clearAllRadioOffReasons();
            } else {
                sRadioPowerOffReasons.remove(reason);
            }
+13 −0
Original line number Diff line number Diff line
@@ -1412,6 +1412,19 @@ public class GsmCdmaPhoneTest extends TelephonyTest {
        verify(mSST).setRadioPowerForReason(true, true, false, true, Phone.RADIO_POWER_REASON_USER);
    }

    @Test
    @SmallTest
    public void testSetRadioPowerOnForTestEmergencyCall() {
        mPhoneUT.setRadioPower(false);
        verify(mSST).setRadioPowerForReason(false, false, false, false,
                Phone.RADIO_POWER_REASON_USER);

        mPhoneUT.setRadioPowerOnForTestEmergencyCall(false);
        verify(mSST).clearAllRadioOffReasons();
        verify(mSST).setRadioPowerForReason(eq(true), eq(false), anyBoolean(), eq(false),
                eq(Phone.RADIO_POWER_REASON_USER));
    }

    @Test
    @SmallTest
    public void testReapplyUiccApplicationEnablementRetry() throws Exception {