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

Commit c66a8d63 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Allow test emergency call to remove all radio off reasons." into sc-dev

parents 3f9032ee 42ee1ea9
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -1672,6 +1672,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) {
@@ -1684,7 +1694,6 @@ public class GsmCdmaPhone extends Phone {
            boolean isSelectedPhoneForEmergencyCall, boolean forceApply, int reason) {
        mSST.setRadioPowerForReason(power, forEmergencyCall, isSelectedPhoneForEmergencyCall,
                forceApply, reason);

    }

    private void storeVoiceMailNumber(String number) {
+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
@@ -1094,6 +1094,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.
     */
@@ -1116,7 +1124,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) {
@@ -1125,7 +1133,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
@@ -1434,6 +1434,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 {