Loading src/java/com/android/internal/telephony/ServiceStateTracker.java +23 −27 Original line number Diff line number Diff line Loading @@ -228,7 +228,7 @@ public class ServiceStateTracker extends Handler { public static final int DEFAULT_GPRS_CHECK_PERIOD_MILLIS = 60 * 1000; /** * The timer value to wait for all cellular data networks to be torn down. * The timer value to wait for all data networks to be torn down. */ private static final long POWER_OFF_ALL_DATA_NETWORKS_DISCONNECTED_TIMEOUT = TimeUnit.SECONDS.toMillis(10); Loading Loading @@ -272,7 +272,7 @@ public class ServiceStateTracker extends Handler { protected static final int EVENT_IMS_STATE_CHANGED = 46; protected static final int EVENT_IMS_STATE_DONE = 47; protected static final int EVENT_IMS_CAPABILITY_CHANGED = 48; protected static final int EVENT_ALL_CELLULAR_DATA_DISCONNECTED = 49; protected static final int EVENT_ALL_DATA_DISCONNECTED = 49; protected static final int EVENT_PHONE_TYPE_SWITCHED = 50; protected static final int EVENT_RADIO_POWER_FROM_CARRIER = 51; protected static final int EVENT_IMS_SERVICE_STATE_CHANGED = 53; Loading Loading @@ -605,11 +605,11 @@ public class ServiceStateTracker extends Handler { private int mLastKnownAreaCode = CellInfo.UNAVAILABLE; /** * Data network controller callback for all cellular data disconnected. This is used when * turning on airplane mode, where service state tracker should wait for all cellular data * disconnected on all subscriptions before powering down the modem. * Data network controller callback for all data disconnected. This is used when turning on * airplane mode, where service state tracker should wait for all data disconnected on all * subscriptions before powering down the modem. */ private DataNetworkControllerCallback mAllCellularDataDisconnectedCallback; private DataNetworkControllerCallback mDataDisconnectedCallback; /** * AccessNetworksManagerCallback is used for preferred on the IWLAN when preferred transport Loading Loading @@ -715,13 +715,12 @@ public class ServiceStateTracker extends Handler { registerForImsCapabilityChanged(mCSST, CarrierServiceStateTracker.CARRIER_EVENT_IMS_CAPABILITIES_CHANGED, null); mAllCellularDataDisconnectedCallback = new DataNetworkControllerCallback(this::post) { mDataDisconnectedCallback = new DataNetworkControllerCallback(this::post) { @Override public void onAnyCellularDataNetworkExistingChanged(boolean anyCellularDataExisting) { log("onAnyCellularDataNetworkExistingChanged: anyCellularDataExisting=" + anyCellularDataExisting); if (!anyCellularDataExisting) { sendEmptyMessage(EVENT_ALL_CELLULAR_DATA_DISCONNECTED); public void onAnyDataNetworkExistingChanged(boolean anyDataExisting) { log("onAnyDataNetworkExistingChanged: anyDataExisting=" + anyDataExisting); if (!anyDataExisting) { sendEmptyMessage(EVENT_ALL_DATA_DISCONNECTED); } } }; Loading Loading @@ -1202,7 +1201,7 @@ public class ServiceStateTracker extends Handler { case EVENT_SET_RADIO_POWER_OFF: synchronized(this) { mPendingRadioPowerOffAfterDataOff = false; log("Wait for all cellular data networks torn down timed out. Power off now."); log("Wait for all data networks torn down timed out. Power off now."); hangupAndPowerOff(); } break; Loading Loading @@ -1470,18 +1469,18 @@ public class ServiceStateTracker extends Handler { } break; case EVENT_ALL_CELLULAR_DATA_DISCONNECTED: log("EVENT_ALL_CELLULAR_DATA_DISCONNECTED"); case EVENT_ALL_DATA_DISCONNECTED: log("EVENT_ALL_DATA_DISCONNECTED"); synchronized (this) { if (!mPendingRadioPowerOffAfterDataOff) return; boolean areAllDataDisconnectedOnAllPhones = true; for (Phone phone : PhoneFactory.getPhones()) { if (phone.getDataNetworkController().areAllCellularDataDisconnected()) { if (phone.getDataNetworkController().areAllDataDisconnected()) { phone.getDataNetworkController() .unregisterDataNetworkControllerCallback( mAllCellularDataDisconnectedCallback); mDataDisconnectedCallback); } else { log("Still waiting for all cellular data disconnected on phone: " log("Still waiting for all data disconnected on phone: " + phone.getSubId()); areAllDataDisconnectedOnAllPhones = false; } Loading Loading @@ -4964,17 +4963,17 @@ public class ServiceStateTracker extends Handler { } for (Phone phone : PhoneFactory.getPhones()) { if (!phone.getDataNetworkController().areAllCellularDataDisconnected()) { if (!phone.getDataNetworkController().areAllDataDisconnected()) { log("powerOffRadioSafely: Data is active on phone " + phone.getSubId() + ". Wait for all cellular data disconnect."); + ". Wait for all data disconnect."); mPendingRadioPowerOffAfterDataOff = true; phone.getDataNetworkController().registerDataNetworkControllerCallback( mAllCellularDataDisconnectedCallback); mDataDisconnectedCallback); } } // Tear down outside of the disconnected check to prevent race conditions. mPhone.getDataNetworkController().tearDownAllCellularDataNetworks( mPhone.getDataNetworkController().tearDownAllDataNetworks( DataNetwork.TEAR_DOWN_REASON_AIRPLANE_MODE_ON); if (mPendingRadioPowerOffAfterDataOff) { Loading Loading @@ -5032,11 +5031,8 @@ public class ServiceStateTracker extends Handler { */ protected void hangupAndPowerOff() { if (mCi.getRadioState() == TelephonyManager.RADIO_POWER_OFF) return; // hang up all active non-WFC voice calls boolean isWfc = mPhone.getImsRegistrationTech() == ImsRegistrationImplBase .REGISTRATION_TECH_IWLAN; if (isWfc) log("hangupAndPowerOff: VoWifi registered."); if ((!mPhone.isPhoneTypeGsm() || mPhone.isInCall()) && !isWfc) { // hang up all active voice calls if (!mPhone.isPhoneTypeGsm() || mPhone.isInCall()) { mPhone.mCT.mRingingCall.hangupIfAlive(); mPhone.mCT.mBackgroundCall.hangupIfAlive(); mPhone.mCT.mForegroundCall.hangupIfAlive(); Loading src/java/com/android/internal/telephony/data/DataNetwork.java +0 −8 Original line number Diff line number Diff line Loading @@ -812,12 +812,6 @@ public class DataNetwork extends StateMachine { public abstract void onDisconnected(@NonNull DataNetwork dataNetwork, @DataFailureCause int cause, @TearDownReason int tearDownReason); /** * Called when handover between IWLAN and cellular network started. * @param dataNetwork The data network. */ public abstract void onHandoverStarted(@NonNull DataNetwork dataNetwork); /** * Called when handover between IWLAN and cellular network succeeded. * Loading Loading @@ -1453,8 +1447,6 @@ public class DataNetwork extends StateMachine { sendMessageDelayed(EVENT_STUCK_IN_TRANSIENT_STATE, mDataConfigManager.getNetworkHandoverTimeoutMs()); notifyPreciseDataConnectionState(); mDataNetworkCallback.invokeFromExecutor( () -> mDataNetworkCallback.onHandoverStarted(DataNetwork.this)); } @Override Loading src/java/com/android/internal/telephony/data/DataNetworkController.java +78 −151 File changed.Preview size limit exceeded, changes collapsed. Show changes tests/telephonytests/src/com/android/internal/telephony/ServiceStateTrackerTest.java +9 −42 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ import static org.mockito.Matchers.nullable; import static org.mockito.Mockito.anyInt; import static org.mockito.Mockito.anyString; import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.never; Loading Loading @@ -261,7 +260,7 @@ public class ServiceStateTrackerTest extends TelephonyTest { doReturn(mIwlanNetworkServiceStub).when(mIwlanNetworkServiceStub).asBinder(); addNetworkService(); doReturn(true).when(mDataNetworkController).areAllCellularDataDisconnected(); doReturn(true).when(mDataNetworkController).areAllDataDisconnected(); doReturn(new ServiceState()).when(mPhone).getServiceState(); Loading Loading @@ -420,8 +419,8 @@ public class ServiceStateTrackerTest extends TelephonyTest { replaceInstance(PhoneFactory.class, "sPhones", null, mPhones); doReturn(dataNetworkController_phone2).when(phone2).getDataNetworkController(); doReturn(mSST).when(phone2).getServiceStateTracker(); doReturn(false).when(mDataNetworkController).areAllCellularDataDisconnected(); doReturn(false).when(dataNetworkController_phone2).areAllCellularDataDisconnected(); doReturn(false).when(mDataNetworkController).areAllDataDisconnected(); doReturn(false).when(dataNetworkController_phone2).areAllDataDisconnected(); doReturn(1).when(mPhone).getSubId(); doReturn(2).when(phone2).getSubId(); Loading @@ -434,9 +433,9 @@ public class ServiceStateTrackerTest extends TelephonyTest { sst.setRadioPower(false); waitForLastHandlerAction(mSSTTestHandler.getThreadHandler()); assertEquals(TelephonyManager.RADIO_POWER_ON, mSimulatedCommands.getRadioState()); verify(mDataNetworkController).tearDownAllCellularDataNetworks( verify(mDataNetworkController).tearDownAllDataNetworks( eq(3 /* TEAR_DOWN_REASON_AIRPLANE_MODE_ON */)); verify(dataNetworkController_phone2, never()).tearDownAllCellularDataNetworks(anyInt()); verify(dataNetworkController_phone2, never()).tearDownAllDataNetworks(anyInt()); ArgumentCaptor<DataNetworkController.DataNetworkControllerCallback> callback1 = ArgumentCaptor.forClass(DataNetworkController.DataNetworkControllerCallback.class); ArgumentCaptor<DataNetworkController.DataNetworkControllerCallback> callback2 = Loading @@ -447,16 +446,16 @@ public class ServiceStateTrackerTest extends TelephonyTest { callback2.capture()); // Data disconnected on sub 2, still waiting for data disconnected on sub 1 doReturn(true).when(dataNetworkController_phone2).areAllCellularDataDisconnected(); callback2.getValue().onAnyCellularDataNetworkExistingChanged(false); doReturn(true).when(dataNetworkController_phone2).areAllDataDisconnected(); callback2.getValue().onAnyDataNetworkExistingChanged(false); waitForLastHandlerAction(mSSTTestHandler.getThreadHandler()); assertEquals(TelephonyManager.RADIO_POWER_ON, mSimulatedCommands.getRadioState()); verify(dataNetworkController_phone2, times(1)).unregisterDataNetworkControllerCallback( any()); // Data disconnected on sub 1, radio should power off now doReturn(true).when(mDataNetworkController).areAllCellularDataDisconnected(); callback1.getValue().onAnyCellularDataNetworkExistingChanged(false); doReturn(true).when(mDataNetworkController).areAllDataDisconnected(); callback1.getValue().onAnyDataNetworkExistingChanged(false); waitForLastHandlerAction(mSSTTestHandler.getThreadHandler()); verify(mDataNetworkController, times(1)).unregisterDataNetworkControllerCallback(any()); assertEquals(TelephonyManager.RADIO_POWER_OFF, mSimulatedCommands.getRadioState()); Loading Loading @@ -575,38 +574,6 @@ public class ServiceStateTrackerTest extends TelephonyTest { assertTrue(mSimulatedCommands.getRadioState() == expectedRadioPowerState); } @Test public void testSetRadioPowerForReasonKeepsWfc() { mPhone.mCT = mCT; mCT.mRingingCall = mGsmCdmaCall; mCT.mBackgroundCall = mGsmCdmaCall; mCT.mForegroundCall = mGsmCdmaCall; doReturn(false).when(mPhone).isPhoneTypeGsm(); sst.updatePhoneType(); // Regular power off leads to call drop sst.setRadioPower(true); waitForLastHandlerAction(mSSTTestHandler.getThreadHandler()); clearInvocations(mGsmCdmaCall); sst.setRadioPower(false); waitForLastHandlerAction(mSSTTestHandler.getThreadHandler()); verify(mGsmCdmaCall, times(3)).hangupIfAlive(); // Any WFC should be kept sst.setRadioPower(true); waitForLastHandlerAction(mSSTTestHandler.getThreadHandler()); clearInvocations(mGsmCdmaCall); doReturn(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN).when(mPhone) .getImsRegistrationTech(); sst.setRadioPower(false); waitForLastHandlerAction(mSSTTestHandler.getThreadHandler()); verify(mGsmCdmaCall, never()).hangupIfAlive(); } @Test @MediumTest public void testSetRadioPowerForReasonCarrier() { Loading tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java +0 −1 Original line number Diff line number Diff line Loading @@ -539,7 +539,6 @@ public abstract class TelephonyTest { .queryLocalInterface(anyString()); mPhone.mCi = mSimulatedCommands; mPhone.mCT = mCT; mCT.mCi = mSimulatedCommands; doReturn(mUiccCard).when(mPhone).getUiccCard(); doReturn(mUiccCard).when(mUiccSlot).getUiccCard(); Loading Loading
src/java/com/android/internal/telephony/ServiceStateTracker.java +23 −27 Original line number Diff line number Diff line Loading @@ -228,7 +228,7 @@ public class ServiceStateTracker extends Handler { public static final int DEFAULT_GPRS_CHECK_PERIOD_MILLIS = 60 * 1000; /** * The timer value to wait for all cellular data networks to be torn down. * The timer value to wait for all data networks to be torn down. */ private static final long POWER_OFF_ALL_DATA_NETWORKS_DISCONNECTED_TIMEOUT = TimeUnit.SECONDS.toMillis(10); Loading Loading @@ -272,7 +272,7 @@ public class ServiceStateTracker extends Handler { protected static final int EVENT_IMS_STATE_CHANGED = 46; protected static final int EVENT_IMS_STATE_DONE = 47; protected static final int EVENT_IMS_CAPABILITY_CHANGED = 48; protected static final int EVENT_ALL_CELLULAR_DATA_DISCONNECTED = 49; protected static final int EVENT_ALL_DATA_DISCONNECTED = 49; protected static final int EVENT_PHONE_TYPE_SWITCHED = 50; protected static final int EVENT_RADIO_POWER_FROM_CARRIER = 51; protected static final int EVENT_IMS_SERVICE_STATE_CHANGED = 53; Loading Loading @@ -605,11 +605,11 @@ public class ServiceStateTracker extends Handler { private int mLastKnownAreaCode = CellInfo.UNAVAILABLE; /** * Data network controller callback for all cellular data disconnected. This is used when * turning on airplane mode, where service state tracker should wait for all cellular data * disconnected on all subscriptions before powering down the modem. * Data network controller callback for all data disconnected. This is used when turning on * airplane mode, where service state tracker should wait for all data disconnected on all * subscriptions before powering down the modem. */ private DataNetworkControllerCallback mAllCellularDataDisconnectedCallback; private DataNetworkControllerCallback mDataDisconnectedCallback; /** * AccessNetworksManagerCallback is used for preferred on the IWLAN when preferred transport Loading Loading @@ -715,13 +715,12 @@ public class ServiceStateTracker extends Handler { registerForImsCapabilityChanged(mCSST, CarrierServiceStateTracker.CARRIER_EVENT_IMS_CAPABILITIES_CHANGED, null); mAllCellularDataDisconnectedCallback = new DataNetworkControllerCallback(this::post) { mDataDisconnectedCallback = new DataNetworkControllerCallback(this::post) { @Override public void onAnyCellularDataNetworkExistingChanged(boolean anyCellularDataExisting) { log("onAnyCellularDataNetworkExistingChanged: anyCellularDataExisting=" + anyCellularDataExisting); if (!anyCellularDataExisting) { sendEmptyMessage(EVENT_ALL_CELLULAR_DATA_DISCONNECTED); public void onAnyDataNetworkExistingChanged(boolean anyDataExisting) { log("onAnyDataNetworkExistingChanged: anyDataExisting=" + anyDataExisting); if (!anyDataExisting) { sendEmptyMessage(EVENT_ALL_DATA_DISCONNECTED); } } }; Loading Loading @@ -1202,7 +1201,7 @@ public class ServiceStateTracker extends Handler { case EVENT_SET_RADIO_POWER_OFF: synchronized(this) { mPendingRadioPowerOffAfterDataOff = false; log("Wait for all cellular data networks torn down timed out. Power off now."); log("Wait for all data networks torn down timed out. Power off now."); hangupAndPowerOff(); } break; Loading Loading @@ -1470,18 +1469,18 @@ public class ServiceStateTracker extends Handler { } break; case EVENT_ALL_CELLULAR_DATA_DISCONNECTED: log("EVENT_ALL_CELLULAR_DATA_DISCONNECTED"); case EVENT_ALL_DATA_DISCONNECTED: log("EVENT_ALL_DATA_DISCONNECTED"); synchronized (this) { if (!mPendingRadioPowerOffAfterDataOff) return; boolean areAllDataDisconnectedOnAllPhones = true; for (Phone phone : PhoneFactory.getPhones()) { if (phone.getDataNetworkController().areAllCellularDataDisconnected()) { if (phone.getDataNetworkController().areAllDataDisconnected()) { phone.getDataNetworkController() .unregisterDataNetworkControllerCallback( mAllCellularDataDisconnectedCallback); mDataDisconnectedCallback); } else { log("Still waiting for all cellular data disconnected on phone: " log("Still waiting for all data disconnected on phone: " + phone.getSubId()); areAllDataDisconnectedOnAllPhones = false; } Loading Loading @@ -4964,17 +4963,17 @@ public class ServiceStateTracker extends Handler { } for (Phone phone : PhoneFactory.getPhones()) { if (!phone.getDataNetworkController().areAllCellularDataDisconnected()) { if (!phone.getDataNetworkController().areAllDataDisconnected()) { log("powerOffRadioSafely: Data is active on phone " + phone.getSubId() + ". Wait for all cellular data disconnect."); + ". Wait for all data disconnect."); mPendingRadioPowerOffAfterDataOff = true; phone.getDataNetworkController().registerDataNetworkControllerCallback( mAllCellularDataDisconnectedCallback); mDataDisconnectedCallback); } } // Tear down outside of the disconnected check to prevent race conditions. mPhone.getDataNetworkController().tearDownAllCellularDataNetworks( mPhone.getDataNetworkController().tearDownAllDataNetworks( DataNetwork.TEAR_DOWN_REASON_AIRPLANE_MODE_ON); if (mPendingRadioPowerOffAfterDataOff) { Loading Loading @@ -5032,11 +5031,8 @@ public class ServiceStateTracker extends Handler { */ protected void hangupAndPowerOff() { if (mCi.getRadioState() == TelephonyManager.RADIO_POWER_OFF) return; // hang up all active non-WFC voice calls boolean isWfc = mPhone.getImsRegistrationTech() == ImsRegistrationImplBase .REGISTRATION_TECH_IWLAN; if (isWfc) log("hangupAndPowerOff: VoWifi registered."); if ((!mPhone.isPhoneTypeGsm() || mPhone.isInCall()) && !isWfc) { // hang up all active voice calls if (!mPhone.isPhoneTypeGsm() || mPhone.isInCall()) { mPhone.mCT.mRingingCall.hangupIfAlive(); mPhone.mCT.mBackgroundCall.hangupIfAlive(); mPhone.mCT.mForegroundCall.hangupIfAlive(); Loading
src/java/com/android/internal/telephony/data/DataNetwork.java +0 −8 Original line number Diff line number Diff line Loading @@ -812,12 +812,6 @@ public class DataNetwork extends StateMachine { public abstract void onDisconnected(@NonNull DataNetwork dataNetwork, @DataFailureCause int cause, @TearDownReason int tearDownReason); /** * Called when handover between IWLAN and cellular network started. * @param dataNetwork The data network. */ public abstract void onHandoverStarted(@NonNull DataNetwork dataNetwork); /** * Called when handover between IWLAN and cellular network succeeded. * Loading Loading @@ -1453,8 +1447,6 @@ public class DataNetwork extends StateMachine { sendMessageDelayed(EVENT_STUCK_IN_TRANSIENT_STATE, mDataConfigManager.getNetworkHandoverTimeoutMs()); notifyPreciseDataConnectionState(); mDataNetworkCallback.invokeFromExecutor( () -> mDataNetworkCallback.onHandoverStarted(DataNetwork.this)); } @Override Loading
src/java/com/android/internal/telephony/data/DataNetworkController.java +78 −151 File changed.Preview size limit exceeded, changes collapsed. Show changes
tests/telephonytests/src/com/android/internal/telephony/ServiceStateTrackerTest.java +9 −42 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ import static org.mockito.Matchers.nullable; import static org.mockito.Mockito.anyInt; import static org.mockito.Mockito.anyString; import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.clearInvocations; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.eq; import static org.mockito.Mockito.never; Loading Loading @@ -261,7 +260,7 @@ public class ServiceStateTrackerTest extends TelephonyTest { doReturn(mIwlanNetworkServiceStub).when(mIwlanNetworkServiceStub).asBinder(); addNetworkService(); doReturn(true).when(mDataNetworkController).areAllCellularDataDisconnected(); doReturn(true).when(mDataNetworkController).areAllDataDisconnected(); doReturn(new ServiceState()).when(mPhone).getServiceState(); Loading Loading @@ -420,8 +419,8 @@ public class ServiceStateTrackerTest extends TelephonyTest { replaceInstance(PhoneFactory.class, "sPhones", null, mPhones); doReturn(dataNetworkController_phone2).when(phone2).getDataNetworkController(); doReturn(mSST).when(phone2).getServiceStateTracker(); doReturn(false).when(mDataNetworkController).areAllCellularDataDisconnected(); doReturn(false).when(dataNetworkController_phone2).areAllCellularDataDisconnected(); doReturn(false).when(mDataNetworkController).areAllDataDisconnected(); doReturn(false).when(dataNetworkController_phone2).areAllDataDisconnected(); doReturn(1).when(mPhone).getSubId(); doReturn(2).when(phone2).getSubId(); Loading @@ -434,9 +433,9 @@ public class ServiceStateTrackerTest extends TelephonyTest { sst.setRadioPower(false); waitForLastHandlerAction(mSSTTestHandler.getThreadHandler()); assertEquals(TelephonyManager.RADIO_POWER_ON, mSimulatedCommands.getRadioState()); verify(mDataNetworkController).tearDownAllCellularDataNetworks( verify(mDataNetworkController).tearDownAllDataNetworks( eq(3 /* TEAR_DOWN_REASON_AIRPLANE_MODE_ON */)); verify(dataNetworkController_phone2, never()).tearDownAllCellularDataNetworks(anyInt()); verify(dataNetworkController_phone2, never()).tearDownAllDataNetworks(anyInt()); ArgumentCaptor<DataNetworkController.DataNetworkControllerCallback> callback1 = ArgumentCaptor.forClass(DataNetworkController.DataNetworkControllerCallback.class); ArgumentCaptor<DataNetworkController.DataNetworkControllerCallback> callback2 = Loading @@ -447,16 +446,16 @@ public class ServiceStateTrackerTest extends TelephonyTest { callback2.capture()); // Data disconnected on sub 2, still waiting for data disconnected on sub 1 doReturn(true).when(dataNetworkController_phone2).areAllCellularDataDisconnected(); callback2.getValue().onAnyCellularDataNetworkExistingChanged(false); doReturn(true).when(dataNetworkController_phone2).areAllDataDisconnected(); callback2.getValue().onAnyDataNetworkExistingChanged(false); waitForLastHandlerAction(mSSTTestHandler.getThreadHandler()); assertEquals(TelephonyManager.RADIO_POWER_ON, mSimulatedCommands.getRadioState()); verify(dataNetworkController_phone2, times(1)).unregisterDataNetworkControllerCallback( any()); // Data disconnected on sub 1, radio should power off now doReturn(true).when(mDataNetworkController).areAllCellularDataDisconnected(); callback1.getValue().onAnyCellularDataNetworkExistingChanged(false); doReturn(true).when(mDataNetworkController).areAllDataDisconnected(); callback1.getValue().onAnyDataNetworkExistingChanged(false); waitForLastHandlerAction(mSSTTestHandler.getThreadHandler()); verify(mDataNetworkController, times(1)).unregisterDataNetworkControllerCallback(any()); assertEquals(TelephonyManager.RADIO_POWER_OFF, mSimulatedCommands.getRadioState()); Loading Loading @@ -575,38 +574,6 @@ public class ServiceStateTrackerTest extends TelephonyTest { assertTrue(mSimulatedCommands.getRadioState() == expectedRadioPowerState); } @Test public void testSetRadioPowerForReasonKeepsWfc() { mPhone.mCT = mCT; mCT.mRingingCall = mGsmCdmaCall; mCT.mBackgroundCall = mGsmCdmaCall; mCT.mForegroundCall = mGsmCdmaCall; doReturn(false).when(mPhone).isPhoneTypeGsm(); sst.updatePhoneType(); // Regular power off leads to call drop sst.setRadioPower(true); waitForLastHandlerAction(mSSTTestHandler.getThreadHandler()); clearInvocations(mGsmCdmaCall); sst.setRadioPower(false); waitForLastHandlerAction(mSSTTestHandler.getThreadHandler()); verify(mGsmCdmaCall, times(3)).hangupIfAlive(); // Any WFC should be kept sst.setRadioPower(true); waitForLastHandlerAction(mSSTTestHandler.getThreadHandler()); clearInvocations(mGsmCdmaCall); doReturn(ImsRegistrationImplBase.REGISTRATION_TECH_IWLAN).when(mPhone) .getImsRegistrationTech(); sst.setRadioPower(false); waitForLastHandlerAction(mSSTTestHandler.getThreadHandler()); verify(mGsmCdmaCall, never()).hangupIfAlive(); } @Test @MediumTest public void testSetRadioPowerForReasonCarrier() { Loading
tests/telephonytests/src/com/android/internal/telephony/TelephonyTest.java +0 −1 Original line number Diff line number Diff line Loading @@ -539,7 +539,6 @@ public abstract class TelephonyTest { .queryLocalInterface(anyString()); mPhone.mCi = mSimulatedCommands; mPhone.mCT = mCT; mCT.mCi = mSimulatedCommands; doReturn(mUiccCard).when(mPhone).getUiccCard(); doReturn(mUiccCard).when(mUiccSlot).getUiccCard(); Loading