blob: 5e4b63c1bf7121500237121fec535920525595a8 [file] [log] [blame]
Pierre-Hugues Husson5d5d68a2018-10-02 16:41:21 +02001From 615f294435da9da1f17ca4c236edccef2f028c53 Mon Sep 17 00:00:00 2001
Pierre-Hugues Hussonc88c0102018-08-29 22:56:41 +02002From: Pierre-Hugues Husson <phh@phh.me>
3Date: Tue, 14 Aug 2018 21:48:19 +0200
4Subject: [PATCH] Act as usb device when there is no hal, but we believe we are
5 a device
6
7Change-Id: I036090738525fd8cc63534d52d02ab1852950a7d
8---
9 .../connecteddevice/usb/UsbConnectionBroadcastReceiver.java | 8 ++++++++
10 1 file changed, 8 insertions(+)
11
12diff --git a/src/com/android/settings/connecteddevice/usb/UsbConnectionBroadcastReceiver.java b/src/com/android/settings/connecteddevice/usb/UsbConnectionBroadcastReceiver.java
13index 1b52535..fdd183b 100644
14--- a/src/com/android/settings/connecteddevice/usb/UsbConnectionBroadcastReceiver.java
15+++ b/src/com/android/settings/connecteddevice/usb/UsbConnectionBroadcastReceiver.java
16@@ -77,6 +77,14 @@ public class UsbConnectionBroadcastReceiver extends BroadcastReceiver implements
17 mFunctions = functions;
18 mDataRole = mUsbBackend.getDataRole();
19 mPowerRole = mUsbBackend.getPowerRole();
20+ //If we have no USB HAL, mDataRole is invalid
21+ //But we can't be connected AND have none data_role, so it's safe.
22+ //It would be better to fix UsbManager when no HAL is available, but that's more work
23+ if(mDataRole == UsbPort.DATA_ROLE_NONE &&
24+ intent.getExtras().getBoolean(UsbManager.USB_CONNECTED) &&
25+ !intent.getExtras().getBoolean(UsbManager.USB_HOST_CONNECTED))
26+ mDataRole = UsbPort.DATA_ROLE_DEVICE;
27+
28 }
29 } else if (UsbManager.ACTION_USB_PORT_CHANGED.equals(intent.getAction())) {
30 UsbPortStatus portStatus = intent.getExtras()
31--
322.7.4
33