From abd229b71aded9ce3958a60650bced7c991748e9 Mon Sep 17 00:00:00 2001 From: Badhri Jagan Sridharan Date: Thu, 9 Feb 2017 19:45:21 -0800 Subject: [PATCH] Introduce debounce to filter rapidly toggling type-c ports Type-c ports can quickly toggle between connected/disconnected states. Introduce debounce to prevent sending spurious notifications. Cherry-pick: https://android-review.googlesource.com/#/c/338266/ Bug: 34972898 Test: notification should not be queued for a pixel-c charger not connected to the power outlet. Change-Id: I4aa19f9f864fe5b77e65f6a07a3184d8aba1f5fc --- .../usb/java/com/android/server/usb/UsbDeviceManager.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/usb/java/com/android/server/usb/UsbDeviceManager.java b/services/usb/java/com/android/server/usb/UsbDeviceManager.java index 5ee8c77694111..f3cc764d87e72 100644 --- a/services/usb/java/com/android/server/usb/UsbDeviceManager.java +++ b/services/usb/java/com/android/server/usb/UsbDeviceManager.java @@ -470,7 +470,10 @@ public class UsbDeviceManager { args.argi2 = sourcePower ? 1 :0; args.argi3 = sinkPower ? 1 :0; - obtainMessage(MSG_UPDATE_HOST_STATE, args).sendToTarget(); + removeMessages(MSG_UPDATE_HOST_STATE); + Message msg = obtainMessage(MSG_UPDATE_HOST_STATE, args); + // debounce rapid transitions of connect/disconnect on type-c ports + sendMessageDelayed(msg, UPDATE_DELAY); } private boolean waitForState(String state) {