Loading src/java/com/android/internal/telephony/data/DataNetworkController.java +62 −46 Original line number Diff line number Diff line Loading @@ -2647,7 +2647,7 @@ public class DataNetworkController extends Handler { .unregisterImsRegistrationCallback(oldCallback); } log("Successfully unregistered " + DataUtils.imsFeatureToString(imsFeature) + " registration state. sudId=" + subId); + " registration state. subId=" + subId); mImsFeatureRegistrationCallbacks.remove(imsFeature); } } Loading @@ -2658,6 +2658,7 @@ public class DataNetworkController extends Handler { * @param subId Subscription index. */ private void registerImsStateCallback(int subId) { if (isImsSupportedOnDevice()) { Function<Integer, ImsStateCallback> imsFeatureStateCallbackFactory = imsFeature -> new ImsStateCallback() { @Override Loading Loading @@ -2695,6 +2696,9 @@ public class DataNetworkController extends Handler { } catch (ImsException e) { loge("Exception when registering IMS state callback. " + e); } } else { log("IMS is not supported on this device, skipping registerImsStateCallback"); } } /** Loading @@ -2703,6 +2707,7 @@ public class DataNetworkController extends Handler { * @param subId Subscription index. */ private void unregisterImsStateCallbacks(int subId) { if (isImsSupportedOnDevice()) { ImsStateCallback callback = mImsStateCallbacks.get(ImsFeature.FEATURE_MMTEL); if (callback != null) { mImsManager.getImsMmTelManager(subId).unregisterImsStateCallback(callback); Loading @@ -2716,6 +2721,17 @@ public class DataNetworkController extends Handler { mImsStateCallbacks.remove(ImsFeature.FEATURE_RCS); log("Unregister RCS state on sub " + subId); } } else { log("IMS is not supported on this device, skipping unregisterImsStateCallbacks"); } } /** * called to check if FEATURE_TELEPHONY_IMS feature is available */ private boolean isImsSupportedOnDevice() { return mPhone.getContext().getPackageManager() .hasSystemFeature(PackageManager.FEATURE_TELEPHONY_IMS); } /** Called when subscription info changed. */ Loading tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkControllerTest.java +5 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.annotation.NonNull; import android.content.pm.PackageManager; import android.net.ConnectivityManager; import android.net.InetAddresses; import android.net.LinkAddress; Loading Loading @@ -172,6 +173,7 @@ public class DataNetworkControllerTest extends TelephonyTest { private RegistrationCallback mMmtelRegCallback; private RegistrationCallback mRcsRegCallback; private SubscriptionInfo mMockSubInfo; private PackageManager mMockPackageManager; private int mNetworkRequestId = 0; Loading Loading @@ -863,6 +865,7 @@ public class DataNetworkControllerTest extends TelephonyTest { mMockedDataNetworkControllerCallback = Mockito.mock(DataNetworkControllerCallback.class); mMockedDataRetryManagerCallback = Mockito.mock(DataRetryManagerCallback.class); mMockSubInfo = Mockito.mock(SubscriptionInfo.class); mMockPackageManager = Mockito.mock(PackageManager.class); when(mTelephonyComponentFactory.makeDataSettingsManager(any(Phone.class), any(DataNetworkController.class), any(FeatureFlags.class), any(Looper.class), any(DataSettingsManager.DataSettingsManagerCallback.class))).thenCallRealMethod(); Loading Loading @@ -892,6 +895,8 @@ public class DataNetworkControllerTest extends TelephonyTest { doReturn(true).when(mFeatureFlags).satelliteInternet(); doReturn(true).when(mFeatureFlags) .ignoreExistingNetworksForInternetAllowedChecking(); when(mContext.getPackageManager()).thenReturn(mMockPackageManager); doReturn(true).when(mMockPackageManager).hasSystemFeature(anyString()); List<SubscriptionInfo> infoList = new ArrayList<>(); infoList.add(mMockSubInfo); Loading Loading
src/java/com/android/internal/telephony/data/DataNetworkController.java +62 −46 Original line number Diff line number Diff line Loading @@ -2647,7 +2647,7 @@ public class DataNetworkController extends Handler { .unregisterImsRegistrationCallback(oldCallback); } log("Successfully unregistered " + DataUtils.imsFeatureToString(imsFeature) + " registration state. sudId=" + subId); + " registration state. subId=" + subId); mImsFeatureRegistrationCallbacks.remove(imsFeature); } } Loading @@ -2658,6 +2658,7 @@ public class DataNetworkController extends Handler { * @param subId Subscription index. */ private void registerImsStateCallback(int subId) { if (isImsSupportedOnDevice()) { Function<Integer, ImsStateCallback> imsFeatureStateCallbackFactory = imsFeature -> new ImsStateCallback() { @Override Loading Loading @@ -2695,6 +2696,9 @@ public class DataNetworkController extends Handler { } catch (ImsException e) { loge("Exception when registering IMS state callback. " + e); } } else { log("IMS is not supported on this device, skipping registerImsStateCallback"); } } /** Loading @@ -2703,6 +2707,7 @@ public class DataNetworkController extends Handler { * @param subId Subscription index. */ private void unregisterImsStateCallbacks(int subId) { if (isImsSupportedOnDevice()) { ImsStateCallback callback = mImsStateCallbacks.get(ImsFeature.FEATURE_MMTEL); if (callback != null) { mImsManager.getImsMmTelManager(subId).unregisterImsStateCallback(callback); Loading @@ -2716,6 +2721,17 @@ public class DataNetworkController extends Handler { mImsStateCallbacks.remove(ImsFeature.FEATURE_RCS); log("Unregister RCS state on sub " + subId); } } else { log("IMS is not supported on this device, skipping unregisterImsStateCallbacks"); } } /** * called to check if FEATURE_TELEPHONY_IMS feature is available */ private boolean isImsSupportedOnDevice() { return mPhone.getContext().getPackageManager() .hasSystemFeature(PackageManager.FEATURE_TELEPHONY_IMS); } /** Called when subscription info changed. */ Loading
tests/telephonytests/src/com/android/internal/telephony/data/DataNetworkControllerTest.java +5 −0 Original line number Diff line number Diff line Loading @@ -44,6 +44,7 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.annotation.NonNull; import android.content.pm.PackageManager; import android.net.ConnectivityManager; import android.net.InetAddresses; import android.net.LinkAddress; Loading Loading @@ -172,6 +173,7 @@ public class DataNetworkControllerTest extends TelephonyTest { private RegistrationCallback mMmtelRegCallback; private RegistrationCallback mRcsRegCallback; private SubscriptionInfo mMockSubInfo; private PackageManager mMockPackageManager; private int mNetworkRequestId = 0; Loading Loading @@ -863,6 +865,7 @@ public class DataNetworkControllerTest extends TelephonyTest { mMockedDataNetworkControllerCallback = Mockito.mock(DataNetworkControllerCallback.class); mMockedDataRetryManagerCallback = Mockito.mock(DataRetryManagerCallback.class); mMockSubInfo = Mockito.mock(SubscriptionInfo.class); mMockPackageManager = Mockito.mock(PackageManager.class); when(mTelephonyComponentFactory.makeDataSettingsManager(any(Phone.class), any(DataNetworkController.class), any(FeatureFlags.class), any(Looper.class), any(DataSettingsManager.DataSettingsManagerCallback.class))).thenCallRealMethod(); Loading Loading @@ -892,6 +895,8 @@ public class DataNetworkControllerTest extends TelephonyTest { doReturn(true).when(mFeatureFlags).satelliteInternet(); doReturn(true).when(mFeatureFlags) .ignoreExistingNetworksForInternetAllowedChecking(); when(mContext.getPackageManager()).thenReturn(mMockPackageManager); doReturn(true).when(mMockPackageManager).hasSystemFeature(anyString()); List<SubscriptionInfo> infoList = new ArrayList<>(); infoList.add(mMockSubInfo); Loading