Merge "Only enable data for one SIM in DSDS."
This commit is contained in:
committed by
Android (Google) Code Review
commit
c8b7207edb
@@ -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;
|
||||
@@ -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;
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
|
@@ -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;
|
||||
@@ -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(
|
||||
|
Reference in New Issue
Block a user