Fix the usb menu didn't switch to "File Transfer/Android Auto" right after connecting to the car unit.
- Before this CL, the usb receivers didn't check the extra information
of the accessory. It causes the usb menu not to be aware that the
usb port is switched to accessory mode.
In this CL, the receivers will check whether the intent has an
accessory extra. If the usb port is switched to accessory mode
the usb menu will switch to "File Transfer/Android Auto".
Bug: 162451162
Test: make -j42 RunSettingsRoboTests
Change-Id: I0eca89a23670c674b74753fc526256cc1d52e759
Merged-In: I0eca89a23670c674b74753fc526256cc1d52e759
(cherry picked from commit af0a45bb7a
)
This commit is contained in:
@@ -72,6 +72,9 @@ public class UsbConnectionBroadcastReceiver extends BroadcastReceiver implements
|
||||
if (intent.getExtras().getBoolean(UsbManager.USB_FUNCTION_RNDIS)) {
|
||||
functions |= UsbManager.FUNCTION_RNDIS;
|
||||
}
|
||||
if (intent.getExtras().getBoolean(UsbManager.USB_FUNCTION_ACCESSORY)) {
|
||||
functions |= UsbManager.FUNCTION_ACCESSORY;
|
||||
}
|
||||
mFunctions = functions;
|
||||
mDataRole = mUsbBackend.getDataRole();
|
||||
mPowerRole = mUsbBackend.getPowerRole();
|
||||
|
@@ -100,7 +100,11 @@ public class UsbDetailsFunctionsController extends UsbDetailsController
|
||||
pref = getProfilePreference(UsbBackend.usbFunctionsToString(option), title);
|
||||
// Only show supported options
|
||||
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 {
|
||||
mProfilesContainer.removePreference(pref);
|
||||
}
|
||||
|
@@ -153,6 +153,19 @@ public class UsbDetailsFunctionsControllerTest {
|
||||
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
|
||||
public void onClickMtp_noneEnabled_shouldEnableMtp() {
|
||||
when(mUsbBackend.areFunctionsSupported(anyLong())).thenReturn(true);
|
||||
|
Reference in New Issue
Block a user