diff options
author | Badhri Jagan Sridharan <Badhri@google.com> | 2017-02-09 19:45:21 -0800 |
---|---|---|
committer | Badhri Jagan Sridharan <Badhri@google.com> | 2017-02-13 17:44:11 -0800 |
commit | e8b0e113714e13de200ae41d61c6cff154ca9851 (patch) | |
tree | 8b10c3e400941085cb3301059d9d76a6634871e2 | |
parent | 8b0807c789b6c29ee71123c020b680636e9d7d85 (diff) | |
download | base-e8b0e113714e13de200ae41d61c6cff154ca9851.tar.gz |
Introduce debounce to filter rapidly toggling type-c ports [DO NOT MERGE]
Type-c ports can quickly toggle between connected/disconnected
states. Introduce debounce to prevent sending spurious notifications.
Bug: 34972898
Test: notification should not be queued for a pixel-c charger not connected
to the power outlet.
Change-Id: I4aa19f9f864fe5b77e65f6a07a3184d8aba1f5fc
-rw-r--r-- | services/usb/java/com/android/server/usb/UsbDeviceManager.java | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/services/usb/java/com/android/server/usb/UsbDeviceManager.java b/services/usb/java/com/android/server/usb/UsbDeviceManager.java index a9c735bbeeb9..49084088e75b 100644 --- a/services/usb/java/com/android/server/usb/UsbDeviceManager.java +++ b/services/usb/java/com/android/server/usb/UsbDeviceManager.java @@ -443,7 +443,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) { |