Stop usb tethering when user cancel it
- Call stop tethering to clear entitlement result when user do not want using USB tethering on USB menu. - Add test case Bug: 154933817 Test: make -j42 RunSettingsRoboTests Change-Id: Idaaba8df2052f45e710c7959251817e8947a544f
This commit is contained in:
@@ -89,6 +89,9 @@ public class UsbDetailsFunctionsController extends UsbDetailsController
|
|||||||
@Override
|
@Override
|
||||||
protected void refresh(boolean connected, long functions, int powerRole, int dataRole) {
|
protected void refresh(boolean connected, long functions, int powerRole, int dataRole) {
|
||||||
if (!connected || dataRole != DATA_ROLE_DEVICE) {
|
if (!connected || dataRole != DATA_ROLE_DEVICE) {
|
||||||
|
if (mPreviousFunction == UsbManager.FUNCTION_RNDIS) {
|
||||||
|
mConnectivityManager.stopTethering(TETHERING_USB);
|
||||||
|
}
|
||||||
mProfilesContainer.setEnabled(false);
|
mProfilesContainer.setEnabled(false);
|
||||||
} else {
|
} else {
|
||||||
// Functions are only available in device mode
|
// Functions are only available in device mode
|
||||||
@@ -129,6 +132,9 @@ public class UsbDetailsFunctionsController extends UsbDetailsController
|
|||||||
mConnectivityManager.startTethering(TETHERING_USB, true /* showProvisioningUi */,
|
mConnectivityManager.startTethering(TETHERING_USB, true /* showProvisioningUi */,
|
||||||
mOnStartTetheringCallback);
|
mOnStartTetheringCallback);
|
||||||
} else {
|
} else {
|
||||||
|
if (mPreviousFunction == UsbManager.FUNCTION_RNDIS) {
|
||||||
|
mConnectivityManager.stopTethering(TETHERING_USB);
|
||||||
|
}
|
||||||
mUsbBackend.setCurrentFunctions(function);
|
mUsbBackend.setCurrentFunctions(function);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -270,4 +270,42 @@ public class UsbDetailsFunctionsControllerTest {
|
|||||||
|
|
||||||
verify(mUsbBackend).setCurrentFunctions(UsbManager.FUNCTION_PTP);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user