Merge "Make WifiTether listen to datasaver" into pi-dev
diff --git a/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java b/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java
index ab08fdb..bf203e6 100644
--- a/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java
+++ b/src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java
@@ -36,15 +36,17 @@
import com.android.settingslib.core.lifecycle.events.OnStop;
public class WifiTetherSwitchBarController implements SwitchWidgetController.OnSwitchChangeListener,
- LifecycleObserver, OnStart, OnStop {
+ LifecycleObserver, OnStart, OnStop, DataSaverBackend.Listener {
private static final IntentFilter WIFI_INTENT_FILTER;
private final Context mContext;
private final SwitchWidgetController mSwitchBar;
private final ConnectivityManager mConnectivityManager;
- private final DataSaverBackend mDataSaverBackend;
private final WifiManager mWifiManager;
+
+ @VisibleForTesting
+ final DataSaverBackend mDataSaverBackend;
@VisibleForTesting
final ConnectivityManager.OnStartTetheringCallback mOnStartTetheringCallback =
new ConnectivityManager.OnStartTetheringCallback() {
@@ -75,12 +77,14 @@
@Override
public void onStart() {
+ mDataSaverBackend.addListener(this);
mSwitchBar.startListening();
mContext.registerReceiver(mReceiver, WIFI_INTENT_FILTER);
}
@Override
public void onStop() {
+ mDataSaverBackend.remListener(this);
mSwitchBar.stopListening();
mContext.unregisterReceiver(mReceiver);
}
@@ -157,4 +161,19 @@
mSwitchBar.setEnabled(false);
}
}
+
+ @Override
+ public void onDataSaverChanged(boolean isDataSaving) {
+ updateWifiSwitch();
+ }
+
+ @Override
+ public void onWhitelistStatusChanged(int uid, boolean isWhitelisted) {
+ // we don't care, since we just want to read the value
+ }
+
+ @Override
+ public void onBlacklistStatusChanged(int uid, boolean isBlacklisted) {
+ // we don't care, since we just want to read the value
+ }
}
diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java
index db8baab..943a665 100644
--- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java
+++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java
@@ -88,4 +88,20 @@
assertThat(mSwitchBar.isChecked()).isFalse();
assertThat(mSwitchBar.isEnabled()).isTrue();
}
+
+ @Test
+ public void testOnDataSaverChanged_setsEnabledCorrectly() {
+ assertThat(mSwitchBar.isEnabled()).isTrue();
+
+ // try to turn data saver on
+ when(mNetworkPolicyManager.getRestrictBackground()).thenReturn(true);
+ mController.onDataSaverChanged(true);
+ assertThat(mSwitchBar.isEnabled()).isFalse();
+
+ // lets turn data saver off again
+ when(mNetworkPolicyManager.getRestrictBackground()).thenReturn(false);
+ mController.onDataSaverChanged(false);
+ assertThat(mSwitchBar.isEnabled()).isTrue();
+
+ }
}