Cancel a pending timer before setting a new one

This commit is contained in:
Cameron Gutman 2021-03-20 10:59:47 -05:00
parent 523f1df98b
commit cc183c0da8

View File

@ -177,6 +177,15 @@ public class DigitalButton extends VirtualControllerElement {
listener.onClick(); listener.onClick();
} }
if (timerLongClick != null) {
timerLongClick.cancel();
timerLongClick = null;
}
if (longClickTimerTask != null) {
longClickTimerTask.cancel();
longClickTimerTask = null;
}
timerLongClick = new Timer(); timerLongClick = new Timer();
longClickTimerTask = new TimerLongClickTimerTask(); longClickTimerTask = new TimerLongClickTimerTask();
timerLongClick.schedule(longClickTimerTask, timerLongClickTimeout); timerLongClick.schedule(longClickTimerTask, timerLongClickTimeout);
@ -200,9 +209,11 @@ public class DigitalButton extends VirtualControllerElement {
// We may be called for a release without a prior click // We may be called for a release without a prior click
if (timerLongClick != null) { if (timerLongClick != null) {
timerLongClick.cancel(); timerLongClick.cancel();
timerLongClick = null;
} }
if (longClickTimerTask != null) { if (longClickTimerTask != null) {
longClickTimerTask.cancel(); longClickTimerTask.cancel();
longClickTimerTask = null;
} }
} }