summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Xiaozhen Lin <xiaozhenl@google.com> 2024-03-13 00:11:03 +0000
committer Xiaozhen Lin <xiaozhenl@google.com> 2024-04-02 19:35:53 +0000
commit24ce9bae61783ef85ca123eb87e800c5a9e572dd (patch)
treec0328739eea0036b2d9ba75ea7f3a49612a61b48
parentab57e5b3e95d52b9b49d27927886ed881618dac0 (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.java22
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);