Loading src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java +21 −2 Original line number Diff line number Diff line Loading @@ -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() { Loading Loading @@ -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); } Loading Loading @@ -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 } } tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java +16 −0 Original line number Diff line number Diff line Loading @@ -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(); } } Loading
src/com/android/settings/wifi/tether/WifiTetherSwitchBarController.java +21 −2 Original line number Diff line number Diff line Loading @@ -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() { Loading Loading @@ -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); } Loading Loading @@ -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 } }
tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSwitchBarControllerTest.java +16 −0 Original line number Diff line number Diff line Loading @@ -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(); } }