summaryrefslogtreecommitdiff
path: root/services/usb/java
diff options
context:
space:
mode:
author Badhri Jagan Sridharan <Badhri@google.com> 2017-05-24 12:42:50 -0700
committer Badhri Jagan Sridharan <Badhri@google.com> 2017-05-25 10:30:22 -0700
commit7f3047e6b6613e35f99fa505d4c9f1b99cf27c60 (patch)
tree99a97901e6a58fad772aafa84451df5739c0e95f /services/usb/java
parentf685344bb29efa91e083ef4f3d9d371518e1fe9c (diff)
Enable MTP or ADB when default functions are enabled
Clients (viz. Tethering) use UsbManager@setCurrentFunction(null, ..) to make the device switch to default functions. While in OemMode, this gets set to the last enabled functions list. Instead, enable MTP or ADB depending on whether ADB is enabled or not. This is the expected behavior for normal boot as well. Bug: 37491031 Test: Verified that the device falls back to either mtp or adb while in OemOverride mode. Change-Id: I1c26d1d0ee3c015b597d40771cd765b783cd91bb
Diffstat (limited to 'services/usb/java')
-rw-r--r--services/usb/java/com/android/server/usb/UsbDeviceManager.java9
1 files changed, 6 insertions, 3 deletions
diff --git a/services/usb/java/com/android/server/usb/UsbDeviceManager.java b/services/usb/java/com/android/server/usb/UsbDeviceManager.java
index 6dfd08570b18..7de2010121c8 100644
--- a/services/usb/java/com/android/server/usb/UsbDeviceManager.java
+++ b/services/usb/java/com/android/server/usb/UsbDeviceManager.java
@@ -1240,10 +1240,13 @@ public class UsbDeviceManager {
private String getDefaultFunctions() {
String func = SystemProperties.get(getPersistProp(true),
UsbManager.USB_FUNCTION_NONE);
- if (UsbManager.USB_FUNCTION_NONE.equals(func)) {
- func = UsbManager.USB_FUNCTION_MTP;
+ // if ADB is enabled, reset functions to ADB
+ // else enable MTP as usual.
+ if (UsbManager.containsFunction(func, UsbManager.USB_FUNCTION_ADB)) {
+ return UsbManager.USB_FUNCTION_ADB;
+ } else {
+ return UsbManager.USB_FUNCTION_MTP;
}
- return func;
}
public void dump(IndentingPrintWriter pw) {