From 484caa303561b2d22896f92d3ede9e5a03b9b131 Mon Sep 17 00:00:00 2001 From: Felipe Leme Date: Thu, 23 Jun 2016 15:18:11 -0700 Subject: [PATCH] Don't toggle Data Saver again until it receives a callback. BUG: 29253107 Change-Id: I4371f947086a45be6709d2a560d27d1f5f0e79c4 --- src/com/android/settings/datausage/DataSaverSummary.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/datausage/DataSaverSummary.java b/src/com/android/settings/datausage/DataSaverSummary.java index a085f14236..ffd1fa52a0 100644 --- a/src/com/android/settings/datausage/DataSaverSummary.java +++ b/src/com/android/settings/datausage/DataSaverSummary.java @@ -46,6 +46,9 @@ public class DataSaverSummary extends SettingsPreferenceFragment 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 @@ public class DataSaverSummary extends SettingsPreferenceFragment @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 @@ public class DataSaverSummary extends SettingsPreferenceFragment @Override public void onDataSaverChanged(boolean isDataSaving) { - mSwitchBar.setChecked(isDataSaving); + synchronized(this) { + mSwitchBar.setChecked(isDataSaving); + mSwitching = false; + } } @Override -- 2.11.0