Merge "Fix usb menu not switch to "File Transfer/Android Auto" right after connected to car unit"

This commit is contained in:
TreeHugger Robot
2020-09-22 02:55:15 +00:00
committed by Android (Google) Code Review
3 changed files with 21 additions and 1 deletions

View File

@@ -72,6 +72,9 @@ public class UsbConnectionBroadcastReceiver extends BroadcastReceiver implements
if (intent.getExtras().getBoolean(UsbManager.USB_FUNCTION_RNDIS)) { if (intent.getExtras().getBoolean(UsbManager.USB_FUNCTION_RNDIS)) {
functions |= UsbManager.FUNCTION_RNDIS; functions |= UsbManager.FUNCTION_RNDIS;
} }
if (intent.getExtras().getBoolean(UsbManager.USB_FUNCTION_ACCESSORY)) {
functions |= UsbManager.FUNCTION_ACCESSORY;
}
mFunctions = functions; mFunctions = functions;
mDataRole = mUsbBackend.getDataRole(); mDataRole = mUsbBackend.getDataRole();
mPowerRole = mUsbBackend.getPowerRole(); mPowerRole = mUsbBackend.getPowerRole();

View File

@@ -100,7 +100,11 @@ public class UsbDetailsFunctionsController extends UsbDetailsController
pref = getProfilePreference(UsbBackend.usbFunctionsToString(option), title); pref = getProfilePreference(UsbBackend.usbFunctionsToString(option), title);
// Only show supported options // Only show supported options
if (mUsbBackend.areFunctionsSupported(option)) { if (mUsbBackend.areFunctionsSupported(option)) {
pref.setChecked(functions == option); if (functions == UsbManager.FUNCTION_ACCESSORY) {
pref.setChecked(UsbManager.FUNCTION_MTP == option);
} else {
pref.setChecked(functions == option);
}
} else { } else {
mProfilesContainer.removePreference(pref); mProfilesContainer.removePreference(pref);
} }

View File

@@ -153,6 +153,19 @@ public class UsbDetailsFunctionsControllerTest {
assertThat(prefs.get(0).isChecked()).isTrue(); assertThat(prefs.get(0).isChecked()).isTrue();
} }
@Test
public void displayRefresh_accessoryEnabled_shouldCheckSwitches() {
when(mUsbBackend.areFunctionsSupported(anyLong())).thenReturn(true);
mDetailsFunctionsController.refresh(true, UsbManager.FUNCTION_ACCESSORY, POWER_ROLE_SINK,
DATA_ROLE_DEVICE);
List<RadioButtonPreference> prefs = getRadioPreferences();
assertThat(prefs.get(0).getKey())
.isEqualTo(UsbBackend.usbFunctionsToString(UsbManager.FUNCTION_MTP));
assertThat(prefs.get(0).isChecked()).isTrue();
}
@Test @Test
public void onClickMtp_noneEnabled_shouldEnableMtp() { public void onClickMtp_noneEnabled_shouldEnableMtp() {
when(mUsbBackend.areFunctionsSupported(anyLong())).thenReturn(true); when(mUsbBackend.areFunctionsSupported(anyLong())).thenReturn(true);