OSDN Git Service

Fixed Cellular data toggling issue in settings for multisim
authorSanket Padawe <sanketpadawe@google.com>
Thu, 8 Jan 2015 19:23:11 +0000 (11:23 -0800)
committerSanket Padawe <sanketpadawe@google.com>
Thu, 8 Jan 2015 19:23:11 +0000 (11:23 -0800)
Bug: 18916033
Bug: 18779784
Change-Id: Ifda57b5ae89268f921ee2b75b5b6d90d75514540

src/com/android/settings/DataUsageSummary.java

index 732d4c8..2908829 100644 (file)
@@ -993,9 +993,9 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
         return isEnable;
     }
 
-    private void setMobileDataEnabled(boolean enabled) {
+    private void setMobileDataEnabled(int subId, boolean enabled) {
         if (LOGD) Log.d(TAG, "setMobileDataEnabled()");
-        mTelephonyManager.setDataEnabled(enabled);
+        mTelephonyManager.setDataEnabled(subId, enabled);
         mMobileDataEnabled = enabled;
         updatePolicy(false);
     }
@@ -1162,12 +1162,12 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
                     if (Utils.showSimCardTile(getActivity())) {
                         handleMultiSimDataDialog();
                     } else {
-                        setMobileDataEnabled(true);
+                        setMobileDataEnabled(getSubId(currentTab), true);
                     }
                 } else {
                     // disabling data; show confirmation dialog which eventually
                     // calls setMobileDataEnabled() once user confirms.
-                    ConfirmDataDisableFragment.show(DataUsageSummary.this);
+                    ConfirmDataDisableFragment.show(DataUsageSummary.this, getSubId(mCurrentTab));
                 }
             }
 
@@ -1185,7 +1185,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
         // the pop-up.
         if (!Utils.showSimCardTile(context) ||
                 (nextSir != null && currentSir.getSubscriptionId() == nextSir.getSubscriptionId())) {
-            setMobileDataEnabled(true);
+            setMobileDataEnabled(currentSir.getSubscriptionId(), true);
             updateBody();
             return;
         }
@@ -1204,7 +1204,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
             @Override
             public void onClick(DialogInterface dialog, int id) {
                 mSubscriptionManager.setDefaultDataSubId(currentSir.getSubscriptionId());
-                setMobileDataEnabled(true);
+                setMobileDataEnabled(currentSir.getSubscriptionId(), true);
                 updateBody();
             }
         });
@@ -2142,7 +2142,9 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
      * Dialog to request user confirmation before disabling data.
      */
     public static class ConfirmDataDisableFragment extends DialogFragment {
-        public static void show(DataUsageSummary parent) {
+        static int mSubId;
+        public static void show(DataUsageSummary parent, int subId) {
+            mSubId = subId;
             if (!parent.isAdded()) return;
 
             final ConfirmDataDisableFragment dialog = new ConfirmDataDisableFragment();
@@ -2163,7 +2165,7 @@ public class DataUsageSummary extends HighlightingFragment implements Indexable
                     final DataUsageSummary target = (DataUsageSummary) getTargetFragment();
                     if (target != null) {
                         // TODO: extend to modify policy enabled flag.
-                        target.setMobileDataEnabled(false);
+                        target.setMobileDataEnabled(mSubId, false);
                     }
                 }
             });