Don't toggle Data Saver again until it receives a callback.

BUG: 29253107
Change-Id: I4371f947086a45be6709d2a560d27d1f5f0e79c4
This commit is contained in:
Felipe Leme
2016-06-23 15:18:11 -07:00
parent 8f75abf92f
commit 484caa3035

View File

@@ -46,6 +46,9 @@ public class DataSaverSummary extends SettingsPreferenceFragment
private AppStateDataUsageBridge mDataUsageBridge; private AppStateDataUsageBridge mDataUsageBridge;
private Session mSession; private Session mSession;
// Flag used to avoid infinite loop due if user switch it on/off too quicky.
private boolean mSwitching;
@Override @Override
public void onCreate(Bundle icicle) { public void onCreate(Bundle icicle) {
super.onCreate(icicle); super.onCreate(icicle);
@@ -87,8 +90,14 @@ public class DataSaverSummary extends SettingsPreferenceFragment
@Override @Override
public void onSwitchChanged(Switch switchView, boolean isChecked) { public void onSwitchChanged(Switch switchView, boolean isChecked) {
synchronized(this) {
if (mSwitching) {
return;
}
mSwitching = true;
mDataSaverBackend.setDataSaverEnabled(isChecked); mDataSaverBackend.setDataSaverEnabled(isChecked);
} }
}
@Override @Override
protected int getMetricsCategory() { protected int getMetricsCategory() {
@@ -102,7 +111,10 @@ public class DataSaverSummary extends SettingsPreferenceFragment
@Override @Override
public void onDataSaverChanged(boolean isDataSaving) { public void onDataSaverChanged(boolean isDataSaving) {
synchronized(this) {
mSwitchBar.setChecked(isDataSaving); mSwitchBar.setChecked(isDataSaving);
mSwitching = false;
}
} }
@Override @Override