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

Commit 2ab92cc4 authored by Jack Nudelman's avatar Jack Nudelman Committed by Gerrit Code Review
Browse files

Merge "Allow test emergency call to remove all radio off reasons."

parents 9a11271e b32d2afc
Loading
Loading
Loading
Loading
+10 −0
Original line number Original line 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
    @Override
    public void setRadioPower(boolean power, boolean forEmergencyCall,
    public void setRadioPower(boolean power, boolean forEmergencyCall,
            boolean isSelectedPhoneForEmergencyCall, boolean forceApply) {
            boolean isSelectedPhoneForEmergencyCall, boolean forceApply) {
+8 −0
Original line number Original line Diff line number Diff line
@@ -580,6 +580,14 @@ public interface PhoneInternalInterface {
        setRadioPower(power, false, false, false);
        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
     * 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
     * (off is sometimes called "airplane mode"). Current state can be gotten via
+10 −2
Original line number Original line Diff line number Diff line
@@ -1085,6 +1085,14 @@ public class ServiceStateTracker extends Handler {
        return sRadioPowerOffReasons;
        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.
     * 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
     * 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.
     * a reason for setting the power state.
     * More details check {@link PhoneInternalInterface#setRadioPower(
     * More details check {@link PhoneInternalInterface#setRadioPower(
     * boolean, boolean, boolean, boolean, String)}.
     * boolean, boolean, boolean, boolean, int)}.
     */
     */
    public void setRadioPowerForReason(boolean power, boolean forEmergencyCall,
    public void setRadioPowerForReason(boolean power, boolean forEmergencyCall,
            boolean isSelectedPhoneForEmergencyCall, boolean forceApply, int reason) {
            boolean isSelectedPhoneForEmergencyCall, boolean forceApply, int reason) {
@@ -1116,7 +1124,7 @@ public class ServiceStateTracker extends Handler {


        if (power) {
        if (power) {
            if (forEmergencyCall) {
            if (forEmergencyCall) {
                sRadioPowerOffReasons.clear();
                clearAllRadioOffReasons();
            } else {
            } else {
                sRadioPowerOffReasons.remove(reason);
                sRadioPowerOffReasons.remove(reason);
            }
            }
+13 −0
Original line number Original line 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);
        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
    @Test
    @SmallTest
    @SmallTest
    public void testReapplyUiccApplicationEnablementRetry() throws Exception {
    public void testReapplyUiccApplicationEnablementRetry() throws Exception {