summaryrefslogtreecommitdiff
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
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
-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) {