Merge "Import translations. DO NOT MERGE" into nyc-dev
diff --git a/src/com/android/settings/datausage/DataSaverSummary.java b/src/com/android/settings/datausage/DataSaverSummary.java
index a085f14..ffd1fa5 100644
--- a/src/com/android/settings/datausage/DataSaverSummary.java
+++ b/src/com/android/settings/datausage/DataSaverSummary.java
@@ -46,6 +46,9 @@
     private AppStateDataUsageBridge mDataUsageBridge;
     private Session mSession;
 
+    // Flag used to avoid infinite loop due if user switch it on/off too quicky.
+    private boolean mSwitching;
+
     @Override
     public void onCreate(Bundle icicle) {
         super.onCreate(icicle);
@@ -87,7 +90,13 @@
 
     @Override
     public void onSwitchChanged(Switch switchView, boolean isChecked) {
-        mDataSaverBackend.setDataSaverEnabled(isChecked);
+        synchronized(this) {
+            if (mSwitching) {
+                return;
+            }
+            mSwitching = true;
+            mDataSaverBackend.setDataSaverEnabled(isChecked);
+        }
     }
 
     @Override
@@ -102,7 +111,10 @@
 
     @Override
     public void onDataSaverChanged(boolean isDataSaving) {
-        mSwitchBar.setChecked(isDataSaving);
+        synchronized(this) {
+            mSwitchBar.setChecked(isDataSaving);
+            mSwitching = false;
+        }
     }
 
     @Override