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)
|| 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();

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

View file

@ -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();
}

View file

@ -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();

View file

@ -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() {

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(); }
@NonNull