diff options
author | James Wei <jameswei@google.com> | 2021-01-05 14:09:40 +0530 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2022-05-16 21:11:35 +0000 |
commit | 4bc03ff22aff9fac1fb2c27a22d973868c171507 (patch) | |
tree | 2b07266a9047d5e5944b56bd36ed3d4b9e6943bb | |
parent | e6e4df19f8b392120cc314010f93ee1bc5079982 (diff) | |
download | base-4bc03ff22aff9fac1fb2c27a22d973868c171507.tar.gz |
USB: Increase debounce time for DISCONNECT processing (revised)
Original patch: aosp/1539944
Bug: 207057578
Test: See details in b/209342433
Change-Id: I7ff58a1a9755939ccb26dad61969902ec91f2225
Signed-off-by: James Wei <jameswei@google.com>
(cherry picked from commit 06626cef7a9bc8a437aeb912a09484b2b0c922dc)
Merged-In: I7ff58a1a9755939ccb26dad61969902ec91f2225
(cherry picked from commit 615d5d653e036cbb6e09b0be35bdd6520aed9017)
Merged-In: I7ff58a1a9755939ccb26dad61969902ec91f2225
-rw-r--r-- | services/usb/java/com/android/server/usb/UsbDeviceManager.java | 12 |
1 files changed, 9 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 661dcbb7f489..9f31647e038e 100644 --- a/services/usb/java/com/android/server/usb/UsbDeviceManager.java +++ b/services/usb/java/com/android/server/usb/UsbDeviceManager.java @@ -175,7 +175,11 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser // Delay for debouncing USB disconnects. // We often get rapid connect/disconnect events when enabling USB functions, // which need debouncing. - private static final int UPDATE_DELAY = 1000; + private static final int DEVICE_STATE_UPDATE_DELAY_EXT = 3000; + private static final int DEVICE_STATE_UPDATE_DELAY = 1000; + + // Delay for debouncing USB disconnects on Type-C ports in host mode + private static final int HOST_STATE_UPDATE_DELAY = 1000; // Timeout for entering USB request mode. // Request is cancelled if host does not configure device within 10 seconds. @@ -636,7 +640,9 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser msg.arg1 = connected; msg.arg2 = configured; // debounce disconnects to avoid problems bringing up USB tethering - sendMessageDelayed(msg, (connected == 0) ? UPDATE_DELAY : 0); + sendMessageDelayed(msg, + (connected == 0) ? (mScreenLocked ? DEVICE_STATE_UPDATE_DELAY + : DEVICE_STATE_UPDATE_DELAY_EXT) : 0); } public void updateHostState(UsbPort port, UsbPortStatus status) { @@ -651,7 +657,7 @@ public class UsbDeviceManager implements ActivityTaskManagerInternal.ScreenObser removeMessages(MSG_UPDATE_PORT_STATE); Message msg = obtainMessage(MSG_UPDATE_PORT_STATE, args); // debounce rapid transitions of connect/disconnect on type-c ports - sendMessageDelayed(msg, UPDATE_DELAY); + sendMessageDelayed(msg, HOST_STATE_UPDATE_DELAY); } private void setAdbEnabled(boolean enable) { |