Loading src/java/com/android/internal/telephony/ServiceStateTracker.java +12 −1 Original line number Original line Diff line number Diff line Loading @@ -212,6 +212,7 @@ public class ServiceStateTracker extends Handler { protected static final int EVENT_RADIO_POWER_FROM_CARRIER = 51; protected static final int EVENT_RADIO_POWER_FROM_CARRIER = 51; protected static final int EVENT_SIM_NOT_INSERTED = 52; protected static final int EVENT_SIM_NOT_INSERTED = 52; protected static final int EVENT_IMS_SERVICE_STATE_CHANGED = 53; 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"; protected static final String TIMEZONE_PROPERTY = "persist.sys.timezone"; Loading Loading @@ -1134,6 +1135,16 @@ public class ServiceStateTracker extends Handler { } } break; 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 // GSM case EVENT_SIM_READY: case EVENT_SIM_READY: // Reset the mPreviousSubId so we treat a SIM power bounce // Reset the mPreviousSubId so we treat a SIM power bounce Loading Loading @@ -4460,7 +4471,7 @@ public class ServiceStateTracker extends Handler { mPhone.mCT.mForegroundCall.hangupIfAlive(); mPhone.mCT.mForegroundCall.hangupIfAlive(); } } mCi.setRadioPower(false, null); mCi.setRadioPower(false, obtainMessage(EVENT_RADIO_POWER_OFF_DONE)); } } Loading src/java/com/android/internal/telephony/test/SimulatedCommands.java +11 −0 Original line number Original line Diff line number Diff line Loading @@ -132,6 +132,7 @@ public class SimulatedCommands extends BaseCommands private boolean mDcSuccess = true; private boolean mDcSuccess = true; private DataCallResponse mDcResponse; private DataCallResponse mDcResponse; private boolean mIsRadioPowerFailResponse = false; //***** Constructor //***** Constructor public public Loading Loading @@ -1188,11 +1189,17 @@ public class SimulatedCommands extends BaseCommands @Override @Override public void setRadioPower(boolean on, Message result) { public void setRadioPower(boolean on, Message result) { if (mIsRadioPowerFailResponse) { resultFail(result, null, new RuntimeException("setRadioPower failed!")); return; } if(on) { if(on) { setRadioState(RadioState.RADIO_ON); setRadioState(RadioState.RADIO_ON); } else { } else { setRadioState(RadioState.RADIO_OFF); setRadioState(RadioState.RADIO_OFF); } } resultSuccess(result, null); } } Loading Loading @@ -2151,4 +2158,8 @@ public class SimulatedCommands extends BaseCommands super.setOnRestrictedStateChanged(h, what, obj); super.setOnRestrictedStateChanged(h, what, obj); SimulatedCommandsVerifier.getInstance().setOnRestrictedStateChanged(h, what, obj); SimulatedCommandsVerifier.getInstance().setOnRestrictedStateChanged(h, what, obj); } } public void setRadioPowerFailResponse(boolean fail) { mIsRadioPowerFailResponse = fail; } } } tests/telephonytests/src/com/android/internal/telephony/ServiceStateTrackerTest.java +27 −0 Original line number Original line Diff line number Diff line Loading @@ -1112,6 +1112,33 @@ public class ServiceStateTrackerTest extends TelephonyTest { assertEquals(true, sst.isDeviceShuttingDown()); 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 @Test @SmallTest @SmallTest public void testSetTimeFromNITZStr() throws Exception { public void testSetTimeFromNITZStr() throws Exception { Loading Loading
src/java/com/android/internal/telephony/ServiceStateTracker.java +12 −1 Original line number Original line Diff line number Diff line Loading @@ -212,6 +212,7 @@ public class ServiceStateTracker extends Handler { protected static final int EVENT_RADIO_POWER_FROM_CARRIER = 51; protected static final int EVENT_RADIO_POWER_FROM_CARRIER = 51; protected static final int EVENT_SIM_NOT_INSERTED = 52; protected static final int EVENT_SIM_NOT_INSERTED = 52; protected static final int EVENT_IMS_SERVICE_STATE_CHANGED = 53; 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"; protected static final String TIMEZONE_PROPERTY = "persist.sys.timezone"; Loading Loading @@ -1134,6 +1135,16 @@ public class ServiceStateTracker extends Handler { } } break; 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 // GSM case EVENT_SIM_READY: case EVENT_SIM_READY: // Reset the mPreviousSubId so we treat a SIM power bounce // Reset the mPreviousSubId so we treat a SIM power bounce Loading Loading @@ -4460,7 +4471,7 @@ public class ServiceStateTracker extends Handler { mPhone.mCT.mForegroundCall.hangupIfAlive(); mPhone.mCT.mForegroundCall.hangupIfAlive(); } } mCi.setRadioPower(false, null); mCi.setRadioPower(false, obtainMessage(EVENT_RADIO_POWER_OFF_DONE)); } } Loading
src/java/com/android/internal/telephony/test/SimulatedCommands.java +11 −0 Original line number Original line Diff line number Diff line Loading @@ -132,6 +132,7 @@ public class SimulatedCommands extends BaseCommands private boolean mDcSuccess = true; private boolean mDcSuccess = true; private DataCallResponse mDcResponse; private DataCallResponse mDcResponse; private boolean mIsRadioPowerFailResponse = false; //***** Constructor //***** Constructor public public Loading Loading @@ -1188,11 +1189,17 @@ public class SimulatedCommands extends BaseCommands @Override @Override public void setRadioPower(boolean on, Message result) { public void setRadioPower(boolean on, Message result) { if (mIsRadioPowerFailResponse) { resultFail(result, null, new RuntimeException("setRadioPower failed!")); return; } if(on) { if(on) { setRadioState(RadioState.RADIO_ON); setRadioState(RadioState.RADIO_ON); } else { } else { setRadioState(RadioState.RADIO_OFF); setRadioState(RadioState.RADIO_OFF); } } resultSuccess(result, null); } } Loading Loading @@ -2151,4 +2158,8 @@ public class SimulatedCommands extends BaseCommands super.setOnRestrictedStateChanged(h, what, obj); super.setOnRestrictedStateChanged(h, what, obj); SimulatedCommandsVerifier.getInstance().setOnRestrictedStateChanged(h, what, obj); SimulatedCommandsVerifier.getInstance().setOnRestrictedStateChanged(h, what, obj); } } public void setRadioPowerFailResponse(boolean fail) { mIsRadioPowerFailResponse = fail; } } }
tests/telephonytests/src/com/android/internal/telephony/ServiceStateTrackerTest.java +27 −0 Original line number Original line Diff line number Diff line Loading @@ -1112,6 +1112,33 @@ public class ServiceStateTrackerTest extends TelephonyTest { assertEquals(true, sst.isDeviceShuttingDown()); 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 @Test @SmallTest @SmallTest public void testSetTimeFromNITZStr() throws Exception { public void testSetTimeFromNITZStr() throws Exception { Loading