diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index fa3675e7..044fcb12 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,6 +1,6 @@ diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeABC.java b/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeABC.java index 5e918326..e33c3cd2 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeABC.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeABC.java @@ -17,22 +17,30 @@ public class ModeABC extends InputMode { changeLanguage(lang); } + @Override + public boolean onBackspace() { + reset(); + return false; + } + @Override public boolean onNumber(int number, boolean hold, int repeat) { if (hold) { reset(); + autoAcceptTimeout = 0; digitSequence = String.valueOf(number); suggestions.add(language.getKeyNumber(number)); - autoAcceptTimeout = 0; + shouldSelectNextLetter = false; } else if (repeat > 0) { - shouldSelectNextLetter = true; autoAcceptTimeout = settings.getAbcAutoAcceptTimeout(); + shouldSelectNextLetter = true; } else { reset(); + autoAcceptTimeout = settings.getAbcAutoAcceptTimeout(); digitSequence = String.valueOf(number); suggestions.addAll(language.getKeyCharacters(number)); suggestions.add(language.getKeyNumber(number)); - autoAcceptTimeout = settings.getAbcAutoAcceptTimeout(); + shouldSelectNextLetter = false; } return true; @@ -65,8 +73,8 @@ public class ModeABC extends InputMode { } @Override public int getSequenceLength() { return 1; } - - @Override public boolean shouldAcceptPreviousSuggestion() { return autoAcceptTimeout == 0 || !shouldSelectNextLetter; } + @Override public void onAcceptSuggestion(@NonNull String word) { reset(); } + @Override public boolean shouldAcceptPreviousSuggestion() { return !shouldSelectNextLetter; } @Override public boolean shouldSelectNextSuggestion() { return shouldSelectNextLetter; } @Override