Loading src/java/com/android/internal/telephony/data/DataNetwork.java +12 −0 Original line number Diff line number Diff line Loading @@ -166,6 +166,9 @@ public class DataNetwork extends StateMachine { /** Event for detaching a network request. */ private static final int EVENT_DETACH_NETWORK_REQUEST = 3; /** Event when detect radio not available. */ private static final int EVENT_RADIO_NOT_AVAILABLE = 4; /** Event for allocating PDU session id response. */ private static final int EVENT_ALLOCATE_PDU_SESSION_ID_RESPONSE = 5; Loading Loading @@ -1115,6 +1118,11 @@ public class DataNetwork extends StateMachine { log("Ignore the handover to " + AccessNetworkConstants .transportTypeToString(msg.arg1) + " request."); break; case EVENT_RADIO_NOT_AVAILABLE: mFailCause = DataFailCause.RADIO_NOT_AVAILABLE; loge(eventToString(msg.what) + ": transition to disconnected state"); transitionTo(mDisconnectedState); break; default: loge("Unhandled event " + eventToString(msg.what)); break; Loading Loading @@ -1569,6 +1577,7 @@ public class DataNetwork extends StateMachine { registerForBandwidthUpdate(); mKeepaliveTracker.registerForKeepaliveStatus(); mRil.registerForPcoData(this.getHandler(), EVENT_PCO_DATA_RECEIVED, null); mRil.registerForNotAvailable(this.getHandler(), EVENT_RADIO_NOT_AVAILABLE, null); } /** Loading @@ -1578,6 +1587,7 @@ public class DataNetwork extends StateMachine { unregisterForBandwidthUpdate(); mKeepaliveTracker.unregisterForKeepaliveStatus(); mRil.unregisterForPcoData(this.getHandler()); mRil.unregisterForNotAvailable(this.getHandler()); } @Override Loading Loading @@ -3285,6 +3295,8 @@ public class DataNetwork extends StateMachine { return "EVENT_ATTACH_NETWORK_REQUEST"; case EVENT_DETACH_NETWORK_REQUEST: return "EVENT_DETACH_NETWORK_REQUEST"; case EVENT_RADIO_NOT_AVAILABLE: return "EVENT_RADIO_NOT_AVAILABLE"; case EVENT_ALLOCATE_PDU_SESSION_ID_RESPONSE: return "EVENT_ALLOCATE_PDU_SESSION_ID_RESPONSE"; case EVENT_SETUP_DATA_NETWORK_RESPONSE: Loading tests/telephonytests/src/com/android/internal/telephony/SimulatedCommands.java +12 −0 Original line number Diff line number Diff line Loading @@ -2357,6 +2357,18 @@ public class SimulatedCommands extends BaseCommands mPcoDataRegistrants.remove(h); } @Override public void registerForNotAvailable(Handler h, int what, Object obj) { SimulatedCommandsVerifier.getInstance().registerForNotAvailable(h, what, obj); super.registerForNotAvailable(h, what, obj); } @Override public void unregisterForNotAvailable(Handler h) { SimulatedCommandsVerifier.getInstance().unregisterForNotAvailable(h); super.unregisterForNotAvailable(h); } @Override public void registerForModemReset(Handler h, int what, Object obj) { SimulatedCommandsVerifier.getInstance().registerForModemReset(h, what, obj); Loading tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkTest.java +28 −0 Original line number Diff line number Diff line Loading @@ -448,6 +448,31 @@ public class DataNetworkTest extends TelephonyTest { verify(mDataNetworkCallback).onConnected(eq(mDataNetworkUT)); } @Test public void testRilCrash() throws Exception { NetworkRequestList networkRequestList = new NetworkRequestList(); networkRequestList.add(new TelephonyNetworkRequest(new NetworkRequest.Builder() .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) .build(), mPhone)); setSuccessfulSetupDataResponse(mMockedWwanDataServiceManager, 123); mDataNetworkUT = new DataNetwork(mPhone, Looper.myLooper(), mDataServiceManagers, mInternetDataProfile, networkRequestList, AccessNetworkConstants.TRANSPORT_TYPE_WWAN, DataAllowedReason.NORMAL, mDataNetworkCallback); processAllMessages(); // verify connected verify(mDataNetworkCallback).onConnected(eq(mDataNetworkUT)); // RIL crash mDataNetworkUT.sendMessage(4/*EVENT_RADIO_NOT_AVAILABLE*/); processAllMessages(); verify(mDataNetworkCallback).onDisconnected(eq(mDataNetworkUT), eq(DataFailCause.RADIO_NOT_AVAILABLE)); } @Test public void testCreateImsDataNetwork() throws Exception { NetworkRequestList networkRequestList = new NetworkRequestList(); Loading Loading @@ -967,6 +992,8 @@ public class DataNetworkTest extends TelephonyTest { anyInt(), eq(null)); verify(mSimulatedCommandsVerifier).registerForPcoData(any(Handler.class), anyInt(), eq(null)); verify(mSimulatedCommandsVerifier).registerForNotAvailable(any(Handler.class), anyInt(), eq(null)); verify(mVcnManager).addVcnNetworkPolicyChangeListener(any(Executor.class), any(VcnNetworkPolicyChangeListener.class)); verify(mSST).registerForCssIndicatorChanged(any(Handler.class), anyInt(), eq(null)); Loading @@ -986,6 +1013,7 @@ public class DataNetworkTest extends TelephonyTest { any(LinkBandwidthEstimatorCallback.class)); verify(mSimulatedCommandsVerifier).unregisterForNattKeepaliveStatus(any(Handler.class)); verify(mSimulatedCommandsVerifier).unregisterForPcoData(any(Handler.class)); verify(mSimulatedCommandsVerifier).unregisterForNotAvailable(any(Handler.class)); verify(mVcnManager).removeVcnNetworkPolicyChangeListener( any(VcnNetworkPolicyChangeListener.class)); verify(mSST).unregisterForCssIndicatorChanged(any(Handler.class)); Loading Loading
src/java/com/android/internal/telephony/data/DataNetwork.java +12 −0 Original line number Diff line number Diff line Loading @@ -166,6 +166,9 @@ public class DataNetwork extends StateMachine { /** Event for detaching a network request. */ private static final int EVENT_DETACH_NETWORK_REQUEST = 3; /** Event when detect radio not available. */ private static final int EVENT_RADIO_NOT_AVAILABLE = 4; /** Event for allocating PDU session id response. */ private static final int EVENT_ALLOCATE_PDU_SESSION_ID_RESPONSE = 5; Loading Loading @@ -1115,6 +1118,11 @@ public class DataNetwork extends StateMachine { log("Ignore the handover to " + AccessNetworkConstants .transportTypeToString(msg.arg1) + " request."); break; case EVENT_RADIO_NOT_AVAILABLE: mFailCause = DataFailCause.RADIO_NOT_AVAILABLE; loge(eventToString(msg.what) + ": transition to disconnected state"); transitionTo(mDisconnectedState); break; default: loge("Unhandled event " + eventToString(msg.what)); break; Loading Loading @@ -1569,6 +1577,7 @@ public class DataNetwork extends StateMachine { registerForBandwidthUpdate(); mKeepaliveTracker.registerForKeepaliveStatus(); mRil.registerForPcoData(this.getHandler(), EVENT_PCO_DATA_RECEIVED, null); mRil.registerForNotAvailable(this.getHandler(), EVENT_RADIO_NOT_AVAILABLE, null); } /** Loading @@ -1578,6 +1587,7 @@ public class DataNetwork extends StateMachine { unregisterForBandwidthUpdate(); mKeepaliveTracker.unregisterForKeepaliveStatus(); mRil.unregisterForPcoData(this.getHandler()); mRil.unregisterForNotAvailable(this.getHandler()); } @Override Loading Loading @@ -3285,6 +3295,8 @@ public class DataNetwork extends StateMachine { return "EVENT_ATTACH_NETWORK_REQUEST"; case EVENT_DETACH_NETWORK_REQUEST: return "EVENT_DETACH_NETWORK_REQUEST"; case EVENT_RADIO_NOT_AVAILABLE: return "EVENT_RADIO_NOT_AVAILABLE"; case EVENT_ALLOCATE_PDU_SESSION_ID_RESPONSE: return "EVENT_ALLOCATE_PDU_SESSION_ID_RESPONSE"; case EVENT_SETUP_DATA_NETWORK_RESPONSE: Loading
tests/telephonytests/src/com/android/internal/telephony/SimulatedCommands.java +12 −0 Original line number Diff line number Diff line Loading @@ -2357,6 +2357,18 @@ public class SimulatedCommands extends BaseCommands mPcoDataRegistrants.remove(h); } @Override public void registerForNotAvailable(Handler h, int what, Object obj) { SimulatedCommandsVerifier.getInstance().registerForNotAvailable(h, what, obj); super.registerForNotAvailable(h, what, obj); } @Override public void unregisterForNotAvailable(Handler h) { SimulatedCommandsVerifier.getInstance().unregisterForNotAvailable(h); super.unregisterForNotAvailable(h); } @Override public void registerForModemReset(Handler h, int what, Object obj) { SimulatedCommandsVerifier.getInstance().registerForModemReset(h, what, obj); Loading
tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkTest.java +28 −0 Original line number Diff line number Diff line Loading @@ -448,6 +448,31 @@ public class DataNetworkTest extends TelephonyTest { verify(mDataNetworkCallback).onConnected(eq(mDataNetworkUT)); } @Test public void testRilCrash() throws Exception { NetworkRequestList networkRequestList = new NetworkRequestList(); networkRequestList.add(new TelephonyNetworkRequest(new NetworkRequest.Builder() .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET) .build(), mPhone)); setSuccessfulSetupDataResponse(mMockedWwanDataServiceManager, 123); mDataNetworkUT = new DataNetwork(mPhone, Looper.myLooper(), mDataServiceManagers, mInternetDataProfile, networkRequestList, AccessNetworkConstants.TRANSPORT_TYPE_WWAN, DataAllowedReason.NORMAL, mDataNetworkCallback); processAllMessages(); // verify connected verify(mDataNetworkCallback).onConnected(eq(mDataNetworkUT)); // RIL crash mDataNetworkUT.sendMessage(4/*EVENT_RADIO_NOT_AVAILABLE*/); processAllMessages(); verify(mDataNetworkCallback).onDisconnected(eq(mDataNetworkUT), eq(DataFailCause.RADIO_NOT_AVAILABLE)); } @Test public void testCreateImsDataNetwork() throws Exception { NetworkRequestList networkRequestList = new NetworkRequestList(); Loading Loading @@ -967,6 +992,8 @@ public class DataNetworkTest extends TelephonyTest { anyInt(), eq(null)); verify(mSimulatedCommandsVerifier).registerForPcoData(any(Handler.class), anyInt(), eq(null)); verify(mSimulatedCommandsVerifier).registerForNotAvailable(any(Handler.class), anyInt(), eq(null)); verify(mVcnManager).addVcnNetworkPolicyChangeListener(any(Executor.class), any(VcnNetworkPolicyChangeListener.class)); verify(mSST).registerForCssIndicatorChanged(any(Handler.class), anyInt(), eq(null)); Loading @@ -986,6 +1013,7 @@ public class DataNetworkTest extends TelephonyTest { any(LinkBandwidthEstimatorCallback.class)); verify(mSimulatedCommandsVerifier).unregisterForNattKeepaliveStatus(any(Handler.class)); verify(mSimulatedCommandsVerifier).unregisterForPcoData(any(Handler.class)); verify(mSimulatedCommandsVerifier).unregisterForNotAvailable(any(Handler.class)); verify(mVcnManager).removeVcnNetworkPolicyChangeListener( any(VcnNetworkPolicyChangeListener.class)); verify(mSST).unregisterForCssIndicatorChanged(any(Handler.class)); Loading