From 56c6f89a225d5802f2ca6b2b904a82007bb7db0f Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Wed, 24 Apr 2019 12:52:46 -0700 Subject: [PATCH] Remove disable mobile data confirm dialog for single sim. Fixes: 124005813 Test: robotest Change-Id: I2da563f26d6dbb1ec3c6c205f21a96c896b51334 --- .../MobileDataPreferenceController.java | 29 ++++++------------- .../MobileDataPreferenceControllerTest.java | 20 ++++++------- 2 files changed, 18 insertions(+), 31 deletions(-) diff --git a/src/com/android/settings/network/telephony/MobileDataPreferenceController.java b/src/com/android/settings/network/telephony/MobileDataPreferenceController.java index a0e50fcbd80..0a39bfd0d73 100644 --- a/src/com/android/settings/network/telephony/MobileDataPreferenceController.java +++ b/src/com/android/settings/network/telephony/MobileDataPreferenceController.java @@ -17,27 +17,24 @@ package com.android.settings.network.telephony; import android.content.Context; -import android.database.ContentObserver; -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; -import com.android.settings.network.MobileDataContentObserver; -import com.android.settingslib.core.lifecycle.LifecycleObserver; -import com.android.settingslib.core.lifecycle.events.OnStart; -import com.android.settingslib.core.lifecycle.events.OnStop; - import androidx.annotation.VisibleForTesting; import androidx.fragment.app.FragmentManager; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; import androidx.preference.SwitchPreference; +import com.android.settings.network.MobileDataContentObserver; +import com.android.settingslib.core.lifecycle.LifecycleObserver; +import com.android.settingslib.core.lifecycle.events.OnStart; +import com.android.settingslib.core.lifecycle.events.OnStop; + /** * Preference controller for "Mobile data" */ @@ -60,7 +57,7 @@ public class MobileDataPreferenceController extends TelephonyTogglePreferenceCon super(context, key); mSubscriptionManager = context.getSystemService(SubscriptionManager.class); mDataContentObserver = new MobileDataContentObserver(new Handler(Looper.getMainLooper())); - mDataContentObserver.setOnMobileDataChangedListener(()-> updateState(mPreference)); + mDataContentObserver.setOnMobileDataChangedListener(() -> updateState(mPreference)); } @Override @@ -144,18 +141,10 @@ public class MobileDataPreferenceController extends TelephonyTogglePreferenceCon final int defaultSubId = mSubscriptionManager.getDefaultDataSubscriptionId(); final boolean needToDisableOthers = mSubscriptionManager .isActiveSubscriptionId(defaultSubId) && defaultSubId != mSubId; - if (enableData) { - if (isMultiSim && needToDisableOthers) { - mDialogType = MobileDataDialogFragment.TYPE_MULTI_SIM_DIALOG; - return true; - } - } else { - if (!isMultiSim) { - mDialogType = MobileDataDialogFragment.TYPE_DISABLE_DIALOG; - return true; - } + if (enableData && isMultiSim && needToDisableOthers) { + mDialogType = MobileDataDialogFragment.TYPE_MULTI_SIM_DIALOG; + return true; } - return false; } diff --git a/tests/robotests/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java index 1b7b4b47fc3..e853c47e1a7 100644 --- a/tests/robotests/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/network/telephony/MobileDataPreferenceControllerTest.java @@ -21,7 +21,6 @@ import static com.android.settings.core.BasePreferenceController.CONDITIONALLY_U import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.doReturn; -import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; @@ -30,6 +29,10 @@ import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; +import androidx.fragment.app.FragmentManager; +import androidx.fragment.app.FragmentTransaction; +import androidx.preference.SwitchPreference; + import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; @@ -40,10 +43,6 @@ import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowSubscriptionManager; -import androidx.fragment.app.FragmentManager; -import androidx.fragment.app.FragmentTransaction; -import androidx.preference.SwitchPreference; - @RunWith(RobolectricTestRunner.class) @Config(shadows = ShadowSubscriptionManager.class) public class MobileDataPreferenceControllerTest { @@ -94,14 +93,13 @@ public class MobileDataPreferenceControllerTest { } @Test - public void isDialogNeeded_disableSingleSim_returnTrue() { + public void isDialogNeeded_disableSingleSim_returnFalse() { doReturn(true).when(mTelephonyManager).isDataEnabled(); doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(SUB_ID); doReturn(mSubscriptionInfo).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); doReturn(1).when(mTelephonyManager).getSimCount(); - assertThat(mController.isDialogNeeded()).isTrue(); - assertThat(mController.mDialogType).isEqualTo(MobileDataDialogFragment.TYPE_DISABLE_DIALOG); + assertThat(mController.isDialogNeeded()).isFalse(); } @Test @@ -127,7 +125,7 @@ public class MobileDataPreferenceControllerTest { } @Test - public void onPreferenceChange_needDialog_doNothing() { + public void onPreferenceChange_singleSim_On_shouldEnableData() { doReturn(true).when(mTelephonyManager).isDataEnabled(); doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(SUB_ID); doReturn(mSubscriptionInfo).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); @@ -135,11 +133,11 @@ public class MobileDataPreferenceControllerTest { mController.onPreferenceChange(mPreference, true); - verify(mTelephonyManager, never()).setDataEnabled(true); + verify(mTelephonyManager).setDataEnabled(true); } @Test - public void onPreferenceChange_notNeedDialog_update() { + public void onPreferenceChange_multiSim_On_shouldEnableData() { doReturn(true).when(mTelephonyManager).isDataEnabled(); doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(SUB_ID); doReturn(mSubscriptionInfo).when(mSubscriptionManager).getDefaultDataSubscriptionInfo();