diff options
-rw-r--r-- | services/usb/java/com/android/server/usb/UsbService.java | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/services/usb/java/com/android/server/usb/UsbService.java b/services/usb/java/com/android/server/usb/UsbService.java index 2da352d43290..9b5612eacc13 100644 --- a/services/usb/java/com/android/server/usb/UsbService.java +++ b/services/usb/java/com/android/server/usb/UsbService.java @@ -894,7 +894,14 @@ public class UsbService extends IUsbManager.Stub { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.MANAGE_USB, null); if (android.hardware.usb.flags.Flags.enableUsbDataSignalStaking()) { - if (!shouldUpdateUsbSignaling(portId, enable, Binder.getCallingUid())) return false; + if (!shouldUpdateUsbSignaling(portId, enable, Binder.getCallingUid())) { + try { + callback.onOperationComplete(USB_OPERATION_ERROR_INTERNAL); + } catch (RemoteException e) { + Slog.e(TAG, "enableUsbData: Failed to call onOperationComplete", e); + } + return false; + } } final long ident = Binder.clearCallingIdentity(); @@ -950,8 +957,19 @@ public class UsbService extends IUsbManager.Stub { "enableUsbDataWhileDocked: callback must not be null. opId:" + operationId); mContext.enforceCallingOrSelfPermission(android.Manifest.permission.MANAGE_USB, null); + + if (android.hardware.usb.flags.Flags.enableUsbDataSignalStaking()) { + if (!shouldUpdateUsbSignaling(portId, true, Binder.getCallingUid())) { + try { + callback.onOperationComplete(USB_OPERATION_ERROR_INTERNAL); + } catch (RemoteException e) { + Slog.e(TAG, "enableUsbDataWhileDocked: Failed to call onOperationComplete", e); + } + return; + } + } + final long ident = Binder.clearCallingIdentity(); - boolean wait; try { if (mPortManager != null) { mPortManager.enableUsbDataWhileDocked(portId, operationId, callback, null); |