diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java | 3 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogTest.java | 42 |
2 files changed, 37 insertions, 8 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java index ee3b13091d00..1ed18c3df332 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java @@ -363,6 +363,9 @@ public class InternetDialog extends SystemUIDialog implements if (!isChecked && shouldShowMobileDialog()) { showTurnOffMobileDialog(); } else if (!shouldShowMobileDialog()) { + if (mInternetDialogController.isMobileDataEnabled() == isChecked) { + return; + } mInternetDialogController.setMobileDataEnabled(mContext, mDefaultDataSubId, isChecked, false); } diff --git a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogTest.java b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogTest.java index 8c8fdc5bf126..be0ad6e19a02 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogTest.java @@ -84,7 +84,8 @@ public class InternetDialogTest extends SysuiTestCase { private View mDialogView; private View mSubTitle; private LinearLayout mEthernet; - private LinearLayout mMobileDataToggle; + private LinearLayout mMobileDataLayout; + private Switch mMobileToggleSwitch; private LinearLayout mWifiToggle; private Switch mWifiToggleSwitch; private TextView mWifiToggleSummary; @@ -133,7 +134,8 @@ public class InternetDialogTest extends SysuiTestCase { mDialogView = mInternetDialog.mDialogView; mSubTitle = mDialogView.requireViewById(R.id.internet_dialog_subtitle); mEthernet = mDialogView.requireViewById(R.id.ethernet_layout); - mMobileDataToggle = mDialogView.requireViewById(R.id.mobile_network_layout); + mMobileDataLayout = mDialogView.requireViewById(R.id.mobile_network_layout); + mMobileToggleSwitch = mDialogView.requireViewById(R.id.mobile_toggle); mWifiToggle = mDialogView.requireViewById(R.id.turn_on_wifi_layout); mWifiToggleSwitch = mDialogView.requireViewById(R.id.wifi_toggle); mWifiToggleSummary = mDialogView.requireViewById(R.id.wifi_toggle_summary); @@ -234,7 +236,7 @@ public class InternetDialogTest extends SysuiTestCase { mInternetDialog.updateDialog(true); - assertThat(mMobileDataToggle.getVisibility()).isEqualTo(View.GONE); + assertThat(mMobileDataLayout.getVisibility()).isEqualTo(View.GONE); } @Test @@ -246,7 +248,7 @@ public class InternetDialogTest extends SysuiTestCase { mInternetDialog.updateDialog(true); - assertThat(mMobileDataToggle.getVisibility()).isEqualTo(View.GONE); + assertThat(mMobileDataLayout.getVisibility()).isEqualTo(View.GONE); // Carrier network should be visible if airplane mode ON and Wi-Fi is ON. when(mInternetDialogController.isCarrierNetworkActive()).thenReturn(true); @@ -255,7 +257,7 @@ public class InternetDialogTest extends SysuiTestCase { mInternetDialog.updateDialog(true); - assertThat(mMobileDataToggle.getVisibility()).isEqualTo(View.VISIBLE); + assertThat(mMobileDataLayout.getVisibility()).isEqualTo(View.VISIBLE); } @Test @@ -265,7 +267,7 @@ public class InternetDialogTest extends SysuiTestCase { mInternetDialog.updateDialog(true); - assertThat(mMobileDataToggle.getVisibility()).isEqualTo(View.GONE); + assertThat(mMobileDataLayout.getVisibility()).isEqualTo(View.GONE); } @Test @@ -277,7 +279,7 @@ public class InternetDialogTest extends SysuiTestCase { mInternetDialog.updateDialog(true); - assertThat(mMobileDataToggle.getVisibility()).isEqualTo(View.VISIBLE); + assertThat(mMobileDataLayout.getVisibility()).isEqualTo(View.VISIBLE); assertThat(mAirplaneModeSummaryText.getVisibility()).isEqualTo(View.VISIBLE); } @@ -314,6 +316,30 @@ public class InternetDialogTest extends SysuiTestCase { } @Test + public void updateDialog_mobileDataIsEnabled_checkMobileDataSwitch() { + doReturn(true).when(mInternetDialogController).hasActiveSubId(); + when(mInternetDialogController.isCarrierNetworkActive()).thenReturn(true); + when(mInternetDialogController.isMobileDataEnabled()).thenReturn(true); + mMobileToggleSwitch.setChecked(false); + + mInternetDialog.updateDialog(true); + + assertThat(mMobileToggleSwitch.isChecked()).isTrue(); + } + + @Test + public void updateDialog_mobileDataIsNotChanged_checkMobileDataSwitch() { + doReturn(true).when(mInternetDialogController).hasActiveSubId(); + when(mInternetDialogController.isCarrierNetworkActive()).thenReturn(true); + when(mInternetDialogController.isMobileDataEnabled()).thenReturn(false); + mMobileToggleSwitch.setChecked(false); + + mInternetDialog.updateDialog(true); + + assertThat(mMobileToggleSwitch.isChecked()).isFalse(); + } + + @Test public void updateDialog_wifiOnAndHasInternetWifi_showConnectedWifi() { mInternetDialog.dismissDialog(); doReturn(true).when(mInternetDialogController).hasActiveSubId(); @@ -694,7 +720,7 @@ public class InternetDialogTest extends SysuiTestCase { private void setNetworkVisible(boolean ethernetVisible, boolean mobileDataVisible, boolean connectedWifiVisible) { mEthernet.setVisibility(ethernetVisible ? View.VISIBLE : View.GONE); - mMobileDataToggle.setVisibility(mobileDataVisible ? View.VISIBLE : View.GONE); + mMobileDataLayout.setVisibility(mobileDataVisible ? View.VISIBLE : View.GONE); mConnectedWifi.setVisibility(connectedWifiVisible ? View.VISIBLE : View.GONE); } } |