Avoid unnecessary stopTethering when startTethering fails

- If Wi-Fi tethering is enabled or enabling, avoid to startTethering again.

- If Wi-Fi tethering is disabled or disabling, avoid to stopTethering again.

- Add more logs to know which module stopped Tethering.

Bug: 230457055
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=WifiTetherSwitchBarControllerTest

Change-Id: I51d42ac0117d935ecaa9fa7312acc646b43d3593
This commit is contained in:
Weng Su
2022-05-13 05:19:21 +08:00
parent 870dcb6949
commit b1795081da
3 changed files with 56 additions and 2 deletions

View File

@@ -83,8 +83,45 @@ public class WifiTetherSwitchBarControllerTest {
mController.mDataSaverBackend = mDataSaverBackend;
}
@Test
public void startTether_wifiApIsActivated_doNothing() {
when(mWifiManager.getWifiApState()).thenReturn(WIFI_AP_STATE_ENABLED);
mController.startTether();
verify(mConnectivityManager, never()).startTethering(anyInt(), anyBoolean(), any(), any());
}
@Test
public void startTether_wifiApNotActivated_startTethering() {
when(mWifiManager.getWifiApState()).thenReturn(WIFI_AP_STATE_DISABLED);
mController.startTether();
verify(mConnectivityManager).startTethering(anyInt(), anyBoolean(), any(), any());
}
@Test
public void stopTether_wifiApIsActivated_stopTethering() {
when(mWifiManager.getWifiApState()).thenReturn(WIFI_AP_STATE_ENABLED);
mController.stopTether();
verify(mConnectivityManager).stopTethering(anyInt());
}
@Test
public void stopTether_wifiApNotActivated_doNothing() {
when(mWifiManager.getWifiApState()).thenReturn(WIFI_AP_STATE_DISABLED);
mController.stopTether();
verify(mConnectivityManager, never()).stopTethering(anyInt());
}
@Test
public void startTether_fail_resetSwitchBar() {
when(mWifiManager.getWifiApState()).thenReturn(WIFI_AP_STATE_DISABLED);
when(mDataSaverBackend.isDataSaverEnabled()).thenReturn(false);
mController.startTether();
@@ -130,6 +167,7 @@ public class WifiTetherSwitchBarControllerTest {
@Test
public void onSwitchChanged_isNotChecked_stopTethering() {
when(mWifiManager.getWifiApState()).thenReturn(WIFI_AP_STATE_ENABLED);
when(mSwitch.isChecked()).thenReturn(false);
mController.onSwitchChanged(mSwitch, mSwitch.isChecked());