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

Commit a4a81a52 authored by Pengquan Meng's avatar Pengquan Meng Committed by android-build-merger
Browse files

Merge "Send shutdown command to modem" am: 7f2bf36f

am: b22d4c3c

Change-Id: Ia78ed87a3b048de1295808585797daef1faa651c
parents 016119e9 b22d4c3c
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -212,6 +212,7 @@ public class ServiceStateTracker extends Handler {
    protected static final int EVENT_RADIO_POWER_FROM_CARRIER          = 51;
    protected static final int EVENT_SIM_NOT_INSERTED                  = 52;
    protected static final int EVENT_IMS_SERVICE_STATE_CHANGED         = 53;
    protected static final int EVENT_RADIO_POWER_OFF_DONE              = 54;

    protected static final String TIMEZONE_PROPERTY = "persist.sys.timezone";

@@ -1134,6 +1135,16 @@ public class ServiceStateTracker extends Handler {
                }
                break;

            case EVENT_RADIO_POWER_OFF_DONE:
                if (DBG) log("EVENT_RADIO_POWER_OFF_DONE");
                if (mDeviceShuttingDown && mCi.getRadioState().isAvailable()) {
                    // during shutdown the modem may not send radio state changed event
                    // as a result of radio power request
                    // Hence, issuing shut down regardless of radio power response
                    mCi.requestShutdown(null);
                }
                break;

            // GSM
            case EVENT_SIM_READY:
                // Reset the mPreviousSubId so we treat a SIM power bounce
@@ -4465,7 +4476,7 @@ public class ServiceStateTracker extends Handler {
            mPhone.mCT.mForegroundCall.hangupIfAlive();
        }

        mCi.setRadioPower(false, null);
        mCi.setRadioPower(false, obtainMessage(EVENT_RADIO_POWER_OFF_DONE));

    }

+11 −0
Original line number Diff line number Diff line
@@ -132,6 +132,7 @@ public class SimulatedCommands extends BaseCommands

    private boolean mDcSuccess = true;
    private DataCallResponse mDcResponse;
    private boolean mIsRadioPowerFailResponse = false;

    //***** Constructor
    public
@@ -1188,11 +1189,17 @@ public class SimulatedCommands extends BaseCommands

    @Override
    public void setRadioPower(boolean on, Message result) {
        if (mIsRadioPowerFailResponse) {
            resultFail(result, null, new RuntimeException("setRadioPower failed!"));
            return;
        }

        if(on) {
            setRadioState(RadioState.RADIO_ON);
        } else {
            setRadioState(RadioState.RADIO_OFF);
        }
        resultSuccess(result, null);
    }


@@ -2151,4 +2158,8 @@ public class SimulatedCommands extends BaseCommands
        super.setOnRestrictedStateChanged(h, what, obj);
        SimulatedCommandsVerifier.getInstance().setOnRestrictedStateChanged(h, what, obj);
    }

    public void setRadioPowerFailResponse(boolean fail) {
        mIsRadioPowerFailResponse = fail;
    }
}
+27 −0
Original line number Diff line number Diff line
@@ -1114,6 +1114,33 @@ public class ServiceStateTrackerTest extends TelephonyTest {
        assertEquals(true, sst.isDeviceShuttingDown());
    }

    @Test
    @SmallTest
    public void testShuttingDownRequest() throws Exception {
        sst.setRadioPower(true);
        waitForMs(100);

        sst.requestShutdown();
        waitForMs(100);
        assertFalse(mSimulatedCommands.getRadioState().isAvailable());
    }

    @Test
    @SmallTest
    public void testShuttingDownRequestWithRadioPowerFailResponse() throws Exception {
        sst.setRadioPower(true);
        waitForMs(100);

        // Simulate RIL fails the radio power settings.
        mSimulatedCommands.setRadioPowerFailResponse(true);
        sst.setRadioPower(false);
        waitForMs(100);
        assertTrue(mSimulatedCommands.getRadioState().isOn());
        sst.requestShutdown();
        waitForMs(100);
        assertFalse(mSimulatedCommands.getRadioState().isAvailable());
    }

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