blob: 78da58c5e9a94d18742f00cbe0411b1331d2d974 [file] [log] [blame]
Jackeaglea3ae16b2018-12-04 11:30:49 -05001From 234564efdde6678caebcbdf7c7ba989f6b66cb6e 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---
Jackeaglea3ae16b2018-12-04 11:30:49 -05009 .../usb/UsbConnectionBroadcastReceiver.java | 8 ++++++++
Pierre-Hugues Hussonc88c0102018-08-29 22:56:41 +020010 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
Jackeaglea3ae16b2018-12-04 11:30:49 -050013index 1b525352d0..fdd183b53d 100644
Pierre-Hugues Hussonc88c0102018-08-29 22:56:41 +020014--- 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--
Jackeaglea3ae16b2018-12-04 11:30:49 -0500322.17.1
Pierre-Hugues Hussonc88c0102018-08-29 22:56:41 +020033