Merge "Make WifiTether listen to datasaver" into pi-dev

am: 96d4cd3c61

Change-Id: Ieb021594b18d10098c5fe50ef6b840c8b8a43e6b
This commit is contained in:
Salvador Martinez
2018-04-19 20:11:30 -07:00
committed by android-build-merger
2 changed files with 37 additions and 2 deletions

View File

@@ -36,15 +36,17 @@ import com.android.settingslib.core.lifecycle.events.OnStart;
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 @@ public class WifiTetherSwitchBarController implements SwitchWidgetController.OnS
@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 @@ public class WifiTetherSwitchBarController implements SwitchWidgetController.OnS
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
}
}

View File

@@ -88,4 +88,20 @@ public class WifiTetherSwitchBarControllerTest {
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();
}
}