From 0308d6a6ca747c5f87ca700982b1faa215234619 Mon Sep 17 00:00:00 2001 From: Leonid Pliushch Date: Sun, 11 Jul 2021 18:13:32 +0300 Subject: [PATCH] extra keys: avoid scheduled executor leak Under certain cases scheduled executor may leak causing repeatable input to stuck. Issue: https://github.com/termux/termux-app/issues/2156 --- .../com/termux/app/terminal/io/extrakeys/ExtraKeysView.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/java/com/termux/app/terminal/io/extrakeys/ExtraKeysView.java b/app/src/main/java/com/termux/app/terminal/io/extrakeys/ExtraKeysView.java index 31afa07f..66f3008b 100644 --- a/app/src/main/java/com/termux/app/terminal/io/extrakeys/ExtraKeysView.java +++ b/app/src/main/java/com/termux/app/terminal/io/extrakeys/ExtraKeysView.java @@ -302,6 +302,10 @@ public final class ExtraKeysView extends GridLayout { case MotionEvent.ACTION_DOWN: longPressCount = 0; v.setBackgroundColor(BUTTON_PRESSED_COLOR); + if (scheduledExecutor != null) { + scheduledExecutor.shutdownNow(); + scheduledExecutor = null; + } if (Arrays.asList("UP", "DOWN", "LEFT", "RIGHT", "BKSP", "DEL").contains(buttonInfo.getKey())) { // autorepeat scheduledExecutor = Executors.newSingleThreadScheduledExecutor();