From 28d9ac16f35106b40dd183dfc697023e056f3cae Mon Sep 17 00:00:00 2001 From: Pierre-Hugues Husson Date: Tue, 14 Aug 2018 21:48:19 +0200 Subject: [PATCH] Act as usb device when there is no hal, but we believe we are a device Change-Id: I036090738525fd8cc63534d52d02ab1852950a7d --- .../usb/UsbConnectionBroadcastReceiver.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/com/android/settings/connecteddevice/usb/UsbConnectionBroadcastReceiver.java b/src/com/android/settings/connecteddevice/usb/UsbConnectionBroadcastReceiver.java index a203534dde..86c8564bed 100644 --- a/src/com/android/settings/connecteddevice/usb/UsbConnectionBroadcastReceiver.java +++ b/src/com/android/settings/connecteddevice/usb/UsbConnectionBroadcastReceiver.java @@ -78,6 +78,13 @@ public class UsbConnectionBroadcastReceiver extends BroadcastReceiver implements mFunctions = functions; mDataRole = mUsbBackend.getDataRole(); mPowerRole = mUsbBackend.getPowerRole(); + //If we have no USB HAL, mDataRole is invalid + //But we can't be connected AND have none data_role, so it's safe. + //It would be better to fix UsbManager when no HAL is available, but that's more work + if(mDataRole == UsbPortStatus.DATA_ROLE_NONE && + intent.getExtras().getBoolean(UsbManager.USB_CONNECTED) && + !intent.getExtras().getBoolean(UsbManager.USB_HOST_CONNECTED)) + mDataRole = UsbPortStatus.DATA_ROLE_DEVICE; } else if (UsbManager.ACTION_USB_PORT_CHANGED.equals(intent.getAction())) { UsbPortStatus portStatus = intent.getExtras() .getParcelable(UsbManager.EXTRA_PORT_STATUS); -- 2.25.1