diff options
| -rw-r--r-- | services/usb/java/com/android/server/usb/UsbDeviceManager.java | 11 |
1 files changed, 8 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 77b263824b78..3d012f6eacc0 100644 --- a/services/usb/java/com/android/server/usb/UsbDeviceManager.java +++ b/services/usb/java/com/android/server/usb/UsbDeviceManager.java @@ -819,7 +819,7 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser } } - private void notifyAccessoryModeExit(int operationId) { + protected void notifyAccessoryModeExit(int operationId) { // make sure accessory mode is off // and restore default functions Slog.d(TAG, "exited USB accessory mode"); @@ -2145,8 +2145,13 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser */ operationId = sUsbOperationCount.incrementAndGet(); if (msg.arg1 != 1) { - // Set this since default function may be selected from Developer options - setEnabledFunctions(mScreenUnlockedFunctions, false, operationId); + if (mCurrentFunctions == UsbManager.FUNCTION_ACCESSORY) { + notifyAccessoryModeExit(operationId); + } else { + // Set this since default function may be selected from Developer + // options + setEnabledFunctions(mScreenUnlockedFunctions, false, operationId); + } } break; case MSG_GADGET_HAL_REGISTERED: |