From cc183c0da88a93de1eec3b7e2d5f1e1f3b15e5eb Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Sat, 20 Mar 2021 10:59:47 -0500 Subject: [PATCH] Cancel a pending timer before setting a new one --- .../input/virtual_controller/DigitalButton.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/app/src/main/java/com/limelight/binding/input/virtual_controller/DigitalButton.java b/app/src/main/java/com/limelight/binding/input/virtual_controller/DigitalButton.java index 34d95af4..c452e6e4 100644 --- a/app/src/main/java/com/limelight/binding/input/virtual_controller/DigitalButton.java +++ b/app/src/main/java/com/limelight/binding/input/virtual_controller/DigitalButton.java @@ -177,6 +177,15 @@ public class DigitalButton extends VirtualControllerElement { listener.onClick(); } + if (timerLongClick != null) { + timerLongClick.cancel(); + timerLongClick = null; + } + if (longClickTimerTask != null) { + longClickTimerTask.cancel(); + longClickTimerTask = null; + } + timerLongClick = new Timer(); longClickTimerTask = new TimerLongClickTimerTask(); timerLongClick.schedule(longClickTimerTask, timerLongClickTimeout); @@ -200,9 +209,11 @@ public class DigitalButton extends VirtualControllerElement { // We may be called for a release without a prior click if (timerLongClick != null) { timerLongClick.cancel(); + timerLongClick = null; } if (longClickTimerTask != null) { longClickTimerTask.cancel(); + longClickTimerTask = null; } }