OSDN Git Service

Only show mobile data turn off dialog once.
authorAmin Shaikh <ashaikh@google.com>
Wed, 11 Apr 2018 19:20:32 +0000 (15:20 -0400)
committerAmin Shaikh <ashaikh@google.com>
Wed, 11 Apr 2018 19:20:32 +0000 (15:20 -0400)
Change-Id: I9eb8c27ea08f67478e2aacfa091a1320bac828ae
Fixes: 77909752
Test: manual

packages/SystemUI/src/com/android/systemui/qs/tiles/CellularTile.java

index 2abe9d9..892d8e9 100644 (file)
@@ -108,20 +108,21 @@ public class CellularTile extends QSTileImpl<SignalState> {
         }
         if (mDataController.isMobileDataEnabled()) {
             if (mKeyguardMonitor.isSecure() && !mKeyguardMonitor.canSkipBouncer()) {
-                mActivityStarter.postQSRunnableDismissingKeyguard(this::showDisableDialog);
+                mActivityStarter.postQSRunnableDismissingKeyguard(this::maybeShowDisableDialog);
             } else {
-                if (Prefs.getBoolean(mContext, QS_HAS_TURNED_OFF_MOBILE_DATA, false)) {
-                    mDataController.setMobileDataEnabled(false);
-                } else {
-                    mUiHandler.post(this::showDisableDialog);
-                }
+                mUiHandler.post(this::maybeShowDisableDialog);
             }
         } else {
             mDataController.setMobileDataEnabled(true);
         }
     }
 
-    private void showDisableDialog() {
+    private void maybeShowDisableDialog() {
+        if (Prefs.getBoolean(mContext, QS_HAS_TURNED_OFF_MOBILE_DATA, false)) {
+            // Directly turn off mobile data if the user has seen the dialog before.
+            mDataController.setMobileDataEnabled(false);
+            return;
+        }
         mHost.collapsePanels();
         String carrierName = mController.getMobileDataNetworkName();
         if (TextUtils.isEmpty(carrierName)) {