diff options
| author | 2024-03-13 00:11:03 +0000 | |
|---|---|---|
| committer | 2024-04-02 19:35:53 +0000 | |
| commit | 24ce9bae61783ef85ca123eb87e800c5a9e572dd (patch) | |
| tree | c0328739eea0036b2d9ba75ea7f3a49612a61b48 | |
| parent | ab57e5b3e95d52b9b49d27927886ed881618dac0 (diff) | |
UsbService:update mUsbDisableRequesters for enableUsbDataWhileDocked()
1. mUsbDisableRequesters list needs to be updated for enableUsbDataWhileDocked(). If list size > 0, We shouldn't enable USB Data Signaling.
2. Update the callback in enableUsbData() before it returns
Bug: 287498482
Test: manual testing
Change-Id: I8c311c25dccc513dac9aa8cfcd6e419c1aa3f87f
| -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); |