Merge "Stop usb tethering when user cancel it" into rvc-dev am: 53c6c9a672 am: 1659954b04 am: bd4ce318bc

Change-Id: Id0c63405d0d8a03f67b7638b82269d0af0f5cb6b
This commit is contained in:
TreeHugger Robot
2020-05-06 11:39:32 +00:00
committed by Automerger Merge Worker
2 changed files with 44 additions and 0 deletions

View File

@@ -89,6 +89,9 @@ public class UsbDetailsFunctionsController extends UsbDetailsController
@Override
protected void refresh(boolean connected, long functions, int powerRole, int dataRole) {
if (!connected || dataRole != DATA_ROLE_DEVICE) {
if (mPreviousFunction == UsbManager.FUNCTION_RNDIS) {
mConnectivityManager.stopTethering(TETHERING_USB);
}
mProfilesContainer.setEnabled(false);
} else {
// Functions are only available in device mode
@@ -129,6 +132,9 @@ public class UsbDetailsFunctionsController extends UsbDetailsController
mConnectivityManager.startTethering(TETHERING_USB, true /* showProvisioningUi */,
mOnStartTetheringCallback);
} else {
if (mPreviousFunction == UsbManager.FUNCTION_RNDIS) {
mConnectivityManager.stopTethering(TETHERING_USB);
}
mUsbBackend.setCurrentFunctions(function);
}
}

View File

@@ -270,4 +270,42 @@ public class UsbDetailsFunctionsControllerTest {
verify(mUsbBackend).setCurrentFunctions(UsbManager.FUNCTION_PTP);
}
@Test
public void refresh_previousFunctionIsRndis_stopTethering() {
mDetailsFunctionsController.mPreviousFunction = UsbManager.FUNCTION_RNDIS;
mDetailsFunctionsController.refresh(false, 0, 0, 0);
verify(mConnectivityManager).stopTethering(TETHERING_USB);
}
@Test
public void refresh_previousFunctionIsNotRndis_doNothing() {
mDetailsFunctionsController.mPreviousFunction = UsbManager.FUNCTION_MIDI;
mDetailsFunctionsController.refresh(false, 0, 0, 0);
verify(mConnectivityManager, never()).stopTethering(TETHERING_USB);
}
@Test
public void onRadioButtonClicked_previousFunctionIsRndis_stopTethering() {
mRadioButtonPreference.setKey(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_PTP));
doReturn(UsbManager.FUNCTION_RNDIS).when(mUsbBackend).getCurrentFunctions();
mDetailsFunctionsController.onRadioButtonClicked(mRadioButtonPreference);
verify(mConnectivityManager).stopTethering(TETHERING_USB);
}
@Test
public void onRadioButtonClicked_previousFunctionIsNotRndis_doNothing() {
mRadioButtonPreference.setKey(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_PTP));
doReturn(UsbManager.FUNCTION_MIDI).when(mUsbBackend).getCurrentFunctions();
mDetailsFunctionsController.onRadioButtonClicked(mRadioButtonPreference);
verify(mConnectivityManager, never()).stopTethering(TETHERING_USB);
}
}