Loading src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsController.java +6 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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); } } Loading tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsControllerTest.java +38 −0 Original line number Diff line number Diff line Loading @@ -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); } } Loading
src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsController.java +6 −0 Original line number Diff line number Diff line Loading @@ -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 Loading Loading @@ -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); } } Loading
tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsFunctionsControllerTest.java +38 −0 Original line number Diff line number Diff line Loading @@ -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); } }