Loading src/com/android/settings/network/telephony/MobileDataPreferenceController.java +4 −9 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.provider.Settings; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.text.TextUtils; Loading Loading @@ -131,16 +130,12 @@ public class MobileDataPreferenceController extends TogglePreferenceController @VisibleForTesting boolean isDialogNeeded() { final boolean enableData = !mTelephonyManager.isDataEnabled(); final SubscriptionInfo currentSir = mSubscriptionManager.getActiveSubscriptionInfo( mSubId); final SubscriptionInfo nextSir = mSubscriptionManager.getDefaultDataSubscriptionInfo(); final boolean isMultiSim = (mTelephonyManager.getSimCount() > 1); final boolean isMultipleDataOnCapable = (mTelephonyManager.getNumberOfModemsWithSimultaneousDataConnections() > 1); final boolean isDefaultDataSubscription = (nextSir != null && currentSir != null && currentSir.getSubscriptionId() == nextSir.getSubscriptionId()); final int defaultSubId = mSubscriptionManager.getDefaultDataSubscriptionId(); final boolean needToDisableOthers = mSubscriptionManager .isActiveSubscriptionId(defaultSubId) && defaultSubId != mSubId; if (enableData) { if (isMultiSim && !isMultipleDataOnCapable && !isDefaultDataSubscription) { if (isMultiSim && needToDisableOthers) { mDialogType = MobileDataDialogFragment.TYPE_MULTI_SIM_DIALOG; return true; } Loading src/com/android/settings/network/telephony/MobileNetworkUtils.java +2 −1 Original line number Diff line number Diff line Loading @@ -230,7 +230,8 @@ public class MobileNetworkUtils { subscriptionManager.getActiveSubscriptionInfoList(); if (subInfoList != null) { for (SubscriptionInfo subInfo : subInfoList) { if (subInfo.getSubscriptionId() != subId) { // We never disable mobile data for opportunistic subscriptions. if (subInfo.getSubscriptionId() != subId && !subInfo.isOpportunistic()) { context.getSystemService(TelephonyManager.class).createForSubscriptionId( subInfo.getSubscriptionId()).setDataEnabled(false); } Loading tests/robotests/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_U import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; Loading Loading @@ -104,9 +105,8 @@ public class MobileDataPreferenceControllerTest { public void isDialogNeeded_enableNonDefaultSimInMultiSimMode_returnTrue() { doReturn(false).when(mTelephonyManager).isDataEnabled(); doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(SUB_ID); doReturn(null).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); doReturn(true).when(mSubscriptionManager).isActiveSubscriptionId(anyInt()); doReturn(2).when(mTelephonyManager).getSimCount(); doReturn(1).when(mTelephonyManager).getNumberOfModemsWithSimultaneousDataConnections(); assertThat(mController.isDialogNeeded()).isTrue(); assertThat(mController.mDialogType).isEqualTo( Loading Loading
src/com/android/settings/network/telephony/MobileDataPreferenceController.java +4 −9 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.provider.Settings; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.text.TextUtils; Loading Loading @@ -131,16 +130,12 @@ public class MobileDataPreferenceController extends TogglePreferenceController @VisibleForTesting boolean isDialogNeeded() { final boolean enableData = !mTelephonyManager.isDataEnabled(); final SubscriptionInfo currentSir = mSubscriptionManager.getActiveSubscriptionInfo( mSubId); final SubscriptionInfo nextSir = mSubscriptionManager.getDefaultDataSubscriptionInfo(); final boolean isMultiSim = (mTelephonyManager.getSimCount() > 1); final boolean isMultipleDataOnCapable = (mTelephonyManager.getNumberOfModemsWithSimultaneousDataConnections() > 1); final boolean isDefaultDataSubscription = (nextSir != null && currentSir != null && currentSir.getSubscriptionId() == nextSir.getSubscriptionId()); final int defaultSubId = mSubscriptionManager.getDefaultDataSubscriptionId(); final boolean needToDisableOthers = mSubscriptionManager .isActiveSubscriptionId(defaultSubId) && defaultSubId != mSubId; if (enableData) { if (isMultiSim && !isMultipleDataOnCapable && !isDefaultDataSubscription) { if (isMultiSim && needToDisableOthers) { mDialogType = MobileDataDialogFragment.TYPE_MULTI_SIM_DIALOG; return true; } Loading
src/com/android/settings/network/telephony/MobileNetworkUtils.java +2 −1 Original line number Diff line number Diff line Loading @@ -230,7 +230,8 @@ public class MobileNetworkUtils { subscriptionManager.getActiveSubscriptionInfoList(); if (subInfoList != null) { for (SubscriptionInfo subInfo : subInfoList) { if (subInfo.getSubscriptionId() != subId) { // We never disable mobile data for opportunistic subscriptions. if (subInfo.getSubscriptionId() != subId && !subInfo.isOpportunistic()) { context.getSystemService(TelephonyManager.class).createForSubscriptionId( subInfo.getSubscriptionId()).setDataEnabled(false); } Loading
tests/robotests/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java +2 −2 Original line number Diff line number Diff line Loading @@ -20,6 +20,7 @@ import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_U import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; Loading Loading @@ -104,9 +105,8 @@ public class MobileDataPreferenceControllerTest { public void isDialogNeeded_enableNonDefaultSimInMultiSimMode_returnTrue() { doReturn(false).when(mTelephonyManager).isDataEnabled(); doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(SUB_ID); doReturn(null).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); doReturn(true).when(mSubscriptionManager).isActiveSubscriptionId(anyInt()); doReturn(2).when(mTelephonyManager).getSimCount(); doReturn(1).when(mTelephonyManager).getNumberOfModemsWithSimultaneousDataConnections(); assertThat(mController.isDialogNeeded()).isTrue(); assertThat(mController.mDialogType).isEqualTo( Loading