OSDN Git Service

Fix multi-sim popup issue in data usage.
authorSanket Padawe <sanketpadawe@google.com>
Fri, 14 Oct 2016 22:41:52 +0000 (15:41 -0700)
committerSanket Padawe <sanketpadawe@google.com>
Fri, 14 Oct 2016 22:41:52 +0000 (15:41 -0700)
+ Avoid sending popup dialog when data is enabled on currently active
data sim.

Bug: 31736014
Change-Id: I60e9e049f546cb176283bc4c4e20cb2d3e7ac386

src/com/android/settings/datausage/CellDataPreference.java

index b6daa4a..510d8a1 100644 (file)
@@ -111,11 +111,10 @@ public class CellDataPreference extends CustomDialogPreference implements Templa
     @Override
     protected void performClick(View view) {
         MetricsLogger.action(getContext(), MetricsEvent.ACTION_CELL_DATA_TOGGLE, !mChecked);
+        final SubscriptionInfo currentSir = mSubscriptionManager.getActiveSubscriptionInfo(
+                mSubId);
+        final SubscriptionInfo nextSir = mSubscriptionManager.getDefaultDataSubscriptionInfo();
         if (mChecked) {
-            final SubscriptionInfo currentSir = mSubscriptionManager.getActiveSubscriptionInfo(
-                    mSubId);
-            final SubscriptionInfo nextSir = mSubscriptionManager.getDefaultDataSubscriptionInfo();
-
             // If the device is single SIM or is enabling data on the active data SIM then forgo
             // the pop-up.
             if (!Utils.showSimCardTile(getContext()) ||
@@ -136,6 +135,12 @@ public class CellDataPreference extends CustomDialogPreference implements Templa
             // If we are showing the Sim Card tile then we are a Multi-Sim device.
             if (Utils.showSimCardTile(getContext())) {
                 mMultiSimDialog = true;
+                if (nextSir != null && currentSir != null &&
+                        currentSir.getSubscriptionId() == nextSir.getSubscriptionId()) {
+                    setMobileDataEnabled(true);
+                    disableDataForOtherSubscriptions(mSubId);
+                    return;
+                }
                 super.performClick(view);
             } else {
                 setMobileDataEnabled(true);