1
0
Fork 0

no more unnecessary arrow key handling, when there is no hotkey association

This commit is contained in:
sspanak 2023-08-01 10:46:23 +03:00 committed by Dimo Karaivanov
parent c6edb5a726
commit 6f049f0ec4
6 changed files with 10 additions and 31 deletions

View file

@ -133,11 +133,9 @@ abstract class KeyPadHandler extends InputMethodService {
return Key.isNumber(keyCode) return Key.isNumber(keyCode)
|| Key.isOK(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_POUND && onText("#"))
|| (keyCode == KeyEvent.KEYCODE_STAR && 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) || 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 // hardware key handlers
abstract protected boolean shouldTrackUpDown();
abstract protected boolean shouldTrackLeftRight();
// default hardware key handlers
abstract protected boolean onArrow(int key, boolean repeat); abstract protected boolean onArrow(int key, boolean repeat);
abstract public boolean onBackspace(); abstract public boolean onBackspace();
abstract protected boolean onNumber(int key, boolean hold, int repeat); abstract protected boolean onNumber(int key, boolean hold, int repeat);
abstract public boolean onOK(); 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 onKeyAddWord();
abstract protected boolean onKeyNextLanguage(); abstract protected boolean onKeyNextLanguage();
abstract protected boolean onKeyNextInputMode(); abstract protected boolean onKeyNextInputMode();

View file

@ -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() { private boolean isSuggestionViewHidden() {
return suggestionBar == null || !suggestionBar.hasElements(); return suggestionBar == null || !suggestionBar.hasElements();
} }

View file

@ -23,8 +23,12 @@ public class Key {
public static boolean isHotkey(SettingsStore settings, int keyCode) { public static boolean isHotkey(SettingsStore settings, int keyCode) {
return keyCode == settings.getKeyAddWord() return keyCode == settings.getKeyAddWord()
|| keyCode == settings.getKeyBackspace() || keyCode == settings.getKeyBackspace()
|| keyCode == settings.getKeyNextLanguage() || keyCode == settings.getKeyFilterClear()
|| keyCode == settings.getKeyFilterSuggestions()
|| keyCode == settings.getKeyPreviousSuggestion()
|| keyCode == settings.getKeyNextSuggestion()
|| keyCode == settings.getKeyNextInputMode() || keyCode == settings.getKeyNextInputMode()
|| keyCode == settings.getKeyNextLanguage()
|| keyCode == settings.getKeyShowSettings(); || keyCode == settings.getKeyShowSettings();
} }

View file

@ -102,9 +102,6 @@ abstract public class InputMode {
public boolean shouldIgnoreText(String text) { return text == null || text.isEmpty(); } public boolean shouldIgnoreText(String text) { return text == null || text.isEmpty(); }
public boolean shouldSelectNextSuggestion() { return false; } public boolean shouldSelectNextSuggestion() { return false; }
public boolean shouldTrackUpDown() { return false; }
public boolean shouldTrackLeftRight() { return false; }
public void reset() { public void reset() {
autoAcceptTimeout = -1; autoAcceptTimeout = -1;
suggestions.clear(); suggestions.clear();

View file

@ -55,11 +55,7 @@ public class ModeABC extends InputMode {
@Override public int getSequenceLength() { return 1; } @Override public int getSequenceLength() { return 1; }
@Override public boolean shouldAcceptPreviousSuggestion() { return autoAcceptTimeout == 0 || !shouldSelectNextLetter; } @Override public boolean shouldAcceptPreviousSuggestion() { return autoAcceptTimeout == 0 || !shouldSelectNextLetter; }
@Override public boolean shouldTrackUpDown() { return true; } @Override public boolean shouldSelectNextSuggestion() { return shouldSelectNextLetter; }
@Override public boolean shouldTrackLeftRight() { return true; }
@Override public boolean shouldSelectNextSuggestion() {
return shouldSelectNextLetter;
}
@Override @Override
public void reset() { public void reset() {

View file

@ -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(); } @Override public int getSequenceLength() { return digitSequence.length(); }
@NonNull @NonNull