From 6f049f0ec4cf019a91762e5d58a0f9dc21e30ff2 Mon Sep 17 00:00:00 2001 From: sspanak Date: Tue, 1 Aug 2023 10:46:23 +0300 Subject: [PATCH] no more unnecessary arrow key handling, when there is no hotkey association --- src/io/github/sspanak/tt9/ime/KeyPadHandler.java | 14 ++++---------- src/io/github/sspanak/tt9/ime/TraditionalT9.java | 9 --------- src/io/github/sspanak/tt9/ime/helpers/Key.java | 6 +++++- src/io/github/sspanak/tt9/ime/modes/InputMode.java | 3 --- src/io/github/sspanak/tt9/ime/modes/ModeABC.java | 6 +----- .../sspanak/tt9/ime/modes/ModePredictive.java | 3 --- 6 files changed, 10 insertions(+), 31 deletions(-) diff --git a/src/io/github/sspanak/tt9/ime/KeyPadHandler.java b/src/io/github/sspanak/tt9/ime/KeyPadHandler.java index 788a9012..45f0bf7b 100644 --- a/src/io/github/sspanak/tt9/ime/KeyPadHandler.java +++ b/src/io/github/sspanak/tt9/ime/KeyPadHandler.java @@ -133,11 +133,9 @@ abstract class KeyPadHandler extends InputMethodService { return Key.isNumber(keyCode) || Key.isOK(keyCode) - || Key.isHotkey(settings, keyCode) || Key.isHotkey(settings, -keyCode) + || Key.isHotkey(settings, keyCode) || Key.isHotkey(settings, -keyCode) // press or hold a hotkey || (keyCode == KeyEvent.KEYCODE_POUND && onText("#")) || (keyCode == KeyEvent.KEYCODE_STAR && onText("*")) - || ((keyCode == KeyEvent.KEYCODE_DPAD_UP || keyCode == KeyEvent.KEYCODE_DPAD_DOWN) && shouldTrackUpDown()) - || ((keyCode == KeyEvent.KEYCODE_DPAD_LEFT || keyCode == KeyEvent.KEYCODE_DPAD_RIGHT) && shouldTrackLeftRight()) || super.onKeyDown(keyCode, event); // let the system handle the keys we don't care about (usually, only: KEYCODE_BACK) } @@ -262,18 +260,14 @@ abstract class KeyPadHandler extends InputMethodService { } - // toggle handlers - abstract protected boolean shouldTrackUpDown(); - abstract protected boolean shouldTrackLeftRight(); - - // default hardware key handlers + // hardware key handlers abstract protected boolean onArrow(int key, boolean repeat); abstract public boolean onBackspace(); abstract protected boolean onNumber(int key, boolean hold, int repeat); abstract public boolean onOK(); - abstract public boolean onText(String text); + abstract public boolean onText(String text); // used for "#", "*" and whatnot - // customized key handlers + // hotkey handlers abstract protected boolean onKeyAddWord(); abstract protected boolean onKeyNextLanguage(); abstract protected boolean onKeyNextInputMode(); diff --git a/src/io/github/sspanak/tt9/ime/TraditionalT9.java b/src/io/github/sspanak/tt9/ime/TraditionalT9.java index 3bf79d6f..a5cb57d4 100644 --- a/src/io/github/sspanak/tt9/ime/TraditionalT9.java +++ b/src/io/github/sspanak/tt9/ime/TraditionalT9.java @@ -444,15 +444,6 @@ public class TraditionalT9 extends KeyPadHandler { } - protected boolean shouldTrackUpDown() { - return !isSuggestionViewHidden() && mInputMode.shouldTrackUpDown(); - } - - protected boolean shouldTrackLeftRight() { - return !isSuggestionViewHidden() && mInputMode.shouldTrackLeftRight(); - } - - private boolean isSuggestionViewHidden() { return suggestionBar == null || !suggestionBar.hasElements(); } diff --git a/src/io/github/sspanak/tt9/ime/helpers/Key.java b/src/io/github/sspanak/tt9/ime/helpers/Key.java index 3ee4eed5..0aa62cf5 100644 --- a/src/io/github/sspanak/tt9/ime/helpers/Key.java +++ b/src/io/github/sspanak/tt9/ime/helpers/Key.java @@ -23,8 +23,12 @@ public class Key { public static boolean isHotkey(SettingsStore settings, int keyCode) { return keyCode == settings.getKeyAddWord() || keyCode == settings.getKeyBackspace() - || keyCode == settings.getKeyNextLanguage() + || keyCode == settings.getKeyFilterClear() + || keyCode == settings.getKeyFilterSuggestions() + || keyCode == settings.getKeyPreviousSuggestion() + || keyCode == settings.getKeyNextSuggestion() || keyCode == settings.getKeyNextInputMode() + || keyCode == settings.getKeyNextLanguage() || keyCode == settings.getKeyShowSettings(); } diff --git a/src/io/github/sspanak/tt9/ime/modes/InputMode.java b/src/io/github/sspanak/tt9/ime/modes/InputMode.java index 2d4d052b..e77cbaa0 100644 --- a/src/io/github/sspanak/tt9/ime/modes/InputMode.java +++ b/src/io/github/sspanak/tt9/ime/modes/InputMode.java @@ -102,9 +102,6 @@ abstract public class InputMode { public boolean shouldIgnoreText(String text) { return text == null || text.isEmpty(); } public boolean shouldSelectNextSuggestion() { return false; } - public boolean shouldTrackUpDown() { return false; } - public boolean shouldTrackLeftRight() { return false; } - public void reset() { autoAcceptTimeout = -1; suggestions.clear(); diff --git a/src/io/github/sspanak/tt9/ime/modes/ModeABC.java b/src/io/github/sspanak/tt9/ime/modes/ModeABC.java index 3b5830d0..77e01fe4 100644 --- a/src/io/github/sspanak/tt9/ime/modes/ModeABC.java +++ b/src/io/github/sspanak/tt9/ime/modes/ModeABC.java @@ -55,11 +55,7 @@ public class ModeABC extends InputMode { @Override public int getSequenceLength() { return 1; } @Override public boolean shouldAcceptPreviousSuggestion() { return autoAcceptTimeout == 0 || !shouldSelectNextLetter; } - @Override public boolean shouldTrackUpDown() { return true; } - @Override public boolean shouldTrackLeftRight() { return true; } - @Override public boolean shouldSelectNextSuggestion() { - return shouldSelectNextLetter; - } + @Override public boolean shouldSelectNextSuggestion() { return shouldSelectNextLetter; } @Override public void reset() { diff --git a/src/io/github/sspanak/tt9/ime/modes/ModePredictive.java b/src/io/github/sspanak/tt9/ime/modes/ModePredictive.java index f5f7c92d..35d803a4 100644 --- a/src/io/github/sspanak/tt9/ime/modes/ModePredictive.java +++ b/src/io/github/sspanak/tt9/ime/modes/ModePredictive.java @@ -359,9 +359,6 @@ public class ModePredictive extends InputMode { } - @Override public boolean shouldTrackUpDown() { return true; } - @Override public boolean shouldTrackLeftRight() { return true; } - @Override public int getSequenceLength() { return digitSequence.length(); } @NonNull