blob: f8dd536933e1d3a07c7b8fecd1a4264fd38e43fc [file] [log] [blame]
Pierre-Hugues Hussonc88c0102018-08-29 22:56:41 +02001From 126c826b9027d9ac2300890c5941c130dc80c0b1 Mon Sep 17 00:00:00 2001
2From: 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