no more unnecessary arrow key handling, when there is no hotkey association
This commit is contained in:
parent
c6edb5a726
commit
6f049f0ec4
6 changed files with 10 additions and 31 deletions
|
|
@ -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();
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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();
|
||||||
|
|
|
||||||
|
|
@ -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() {
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue