Loading src/java/com/android/internal/telephony/data/DataNetwork.java +13 −5 Original line number Diff line number Diff line Loading @@ -545,6 +545,10 @@ public class DataNetwork extends StateMachine { /** Data network controller. */ private final @NonNull DataNetworkController mDataNetworkController; /** Data network controller callback. */ private final @NonNull DataNetworkController.DataNetworkControllerCallback mDataNetworkControllerCallback; /** Data config manager. */ private final @NonNull DataConfigManager mDataConfigManager; Loading Loading @@ -870,12 +874,14 @@ public class DataNetwork extends StateMachine { mAccessNetworksManager = phone.getAccessNetworksManager(); mVcnManager = mPhone.getContext().getSystemService(VcnManager.class); mDataNetworkController = phone.getDataNetworkController(); mDataNetworkController.registerDataNetworkControllerCallback( new DataNetworkController.DataNetworkControllerCallback(getHandler()::post) { mDataNetworkControllerCallback = new DataNetworkController.DataNetworkControllerCallback( getHandler()::post) { @Override public void onSubscriptionPlanOverride() { sendMessage(EVENT_SUBSCRIPTION_PLAN_OVERRIDE); }}); }}; mDataNetworkController.registerDataNetworkControllerCallback( mDataNetworkControllerCallback); mDataConfigManager = mDataNetworkController.getDataConfigManager(); mDataCallSessionStats = new DataCallSessionStats(mPhone); mDataNetworkCallback = callback; Loading Loading @@ -1562,6 +1568,8 @@ public class DataNetwork extends StateMachine { } notifyPreciseDataConnectionState(); mNetworkAgent.unregister(); mDataNetworkController.unregisterDataNetworkControllerCallback( mDataNetworkControllerCallback); mDataCallSessionStats.onDataCallDisconnected(mFailCause); if (mTransport == AccessNetworkConstants.TRANSPORT_TYPE_WLAN Loading tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkControllerTest.java +19 −3 Original line number Diff line number Diff line Loading @@ -1185,16 +1185,32 @@ public class DataNetworkControllerTest extends TelephonyTest { @Test public void testDataNetworkControllerCallback() throws Exception { Field field = DataNetworkController.class.getDeclaredField( "mDataNetworkControllerCallbacks"); field.setAccessible(true); Set<DataNetworkControllerCallback> dataNetworkControllerCallbacks = (Set<DataNetworkControllerCallback>) field.get(mDataNetworkControllerUT); // Verify register callback mDataNetworkControllerUT.registerDataNetworkControllerCallback( mMockedDataNetworkControllerCallback); TelephonyNetworkRequest request = createNetworkRequest( NetworkCapabilities.NET_CAPABILITY_INTERNET); mDataNetworkControllerUT.addNetworkRequest(request); processAllMessages(); testSetupDataNetwork(); verify(mMockedDataNetworkControllerCallback).onAnyDataNetworkExistingChanged(eq(true)); verify(mMockedDataNetworkControllerCallback).onInternetDataNetworkConnected(any()); mDataNetworkControllerUT.unregisterDataNetworkControllerCallback( mMockedDataNetworkControllerCallback); int countOfCallbacks = dataNetworkControllerCallbacks.size(); // Verify unregister callback mDataNetworkControllerUT.removeNetworkRequest(request); processAllMessages(); getDataNetworks().get(0).tearDown(DataNetwork .TEAR_DOWN_REASON_CONNECTIVITY_SERVICE_UNWANTED); processAllFutureMessages(); assertEquals(countOfCallbacks - 1, dataNetworkControllerCallbacks.size()); } @Test Loading Loading
src/java/com/android/internal/telephony/data/DataNetwork.java +13 −5 Original line number Diff line number Diff line Loading @@ -545,6 +545,10 @@ public class DataNetwork extends StateMachine { /** Data network controller. */ private final @NonNull DataNetworkController mDataNetworkController; /** Data network controller callback. */ private final @NonNull DataNetworkController.DataNetworkControllerCallback mDataNetworkControllerCallback; /** Data config manager. */ private final @NonNull DataConfigManager mDataConfigManager; Loading Loading @@ -870,12 +874,14 @@ public class DataNetwork extends StateMachine { mAccessNetworksManager = phone.getAccessNetworksManager(); mVcnManager = mPhone.getContext().getSystemService(VcnManager.class); mDataNetworkController = phone.getDataNetworkController(); mDataNetworkController.registerDataNetworkControllerCallback( new DataNetworkController.DataNetworkControllerCallback(getHandler()::post) { mDataNetworkControllerCallback = new DataNetworkController.DataNetworkControllerCallback( getHandler()::post) { @Override public void onSubscriptionPlanOverride() { sendMessage(EVENT_SUBSCRIPTION_PLAN_OVERRIDE); }}); }}; mDataNetworkController.registerDataNetworkControllerCallback( mDataNetworkControllerCallback); mDataConfigManager = mDataNetworkController.getDataConfigManager(); mDataCallSessionStats = new DataCallSessionStats(mPhone); mDataNetworkCallback = callback; Loading Loading @@ -1562,6 +1568,8 @@ public class DataNetwork extends StateMachine { } notifyPreciseDataConnectionState(); mNetworkAgent.unregister(); mDataNetworkController.unregisterDataNetworkControllerCallback( mDataNetworkControllerCallback); mDataCallSessionStats.onDataCallDisconnected(mFailCause); if (mTransport == AccessNetworkConstants.TRANSPORT_TYPE_WLAN Loading
tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkControllerTest.java +19 −3 Original line number Diff line number Diff line Loading @@ -1185,16 +1185,32 @@ public class DataNetworkControllerTest extends TelephonyTest { @Test public void testDataNetworkControllerCallback() throws Exception { Field field = DataNetworkController.class.getDeclaredField( "mDataNetworkControllerCallbacks"); field.setAccessible(true); Set<DataNetworkControllerCallback> dataNetworkControllerCallbacks = (Set<DataNetworkControllerCallback>) field.get(mDataNetworkControllerUT); // Verify register callback mDataNetworkControllerUT.registerDataNetworkControllerCallback( mMockedDataNetworkControllerCallback); TelephonyNetworkRequest request = createNetworkRequest( NetworkCapabilities.NET_CAPABILITY_INTERNET); mDataNetworkControllerUT.addNetworkRequest(request); processAllMessages(); testSetupDataNetwork(); verify(mMockedDataNetworkControllerCallback).onAnyDataNetworkExistingChanged(eq(true)); verify(mMockedDataNetworkControllerCallback).onInternetDataNetworkConnected(any()); mDataNetworkControllerUT.unregisterDataNetworkControllerCallback( mMockedDataNetworkControllerCallback); int countOfCallbacks = dataNetworkControllerCallbacks.size(); // Verify unregister callback mDataNetworkControllerUT.removeNetworkRequest(request); processAllMessages(); getDataNetworks().get(0).tearDown(DataNetwork .TEAR_DOWN_REASON_CONNECTIVITY_SERVICE_UNWANTED); processAllFutureMessages(); assertEquals(countOfCallbacks - 1, dataNetworkControllerCallbacks.size()); } @Test Loading