Conversation
There was a problem hiding this comment.
Pull request overview
This PR targets two reported input issues: missing/filtered characters in email fields (#1134) and potentially unstable composing/commit behavior affecting Firefox typing (#1102). It updates how email-mode characters are defined/ordered across modes and changes how suggestions are committed to the target InputConnection.
Changes:
- Flatten
Characters.Emailinto a single allowlist and use it consistently when ordering email-mode characters (so user-assigned email characters don’t get filtered out by grouping). - Adjust suggestion committing to reduce repeated composing updates and clear internal composing state after committing text.
- Improve keycode mapping for numpad keys by respecting “upside-down keys” settings in more paths; tweak numeric mode acceptance behavior.
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| app/src/main/java/io/github/sspanak/tt9/util/chars/Characters.java | Flattens Email character set; tightens orderByList email handling. |
| app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyNumberNumpad.java | Uses settings-aware keycode mapping for numpad interactions. |
| app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeCheonjiin.java | Uses flattened email allowlist when building email-mode key character lists. |
| app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeABC.java | Uses flattened email allowlist when building email-mode key character lists. |
| app/src/main/java/io/github/sspanak/tt9/ime/modes/Mode123.java | Adjusts email special chars setup; changes suggestion-acceptance rule; changes default sorting language logic. |
| app/src/main/java/io/github/sspanak/tt9/ime/helpers/TextField.java | Clears internal composingText after commitText. |
| app/src/main/java/io/github/sspanak/tt9/ime/helpers/SuggestionOps.java | Changes suggestion commit flow to minimize composing updates and potentially reduce Firefox issues. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
…haracters that are swapped between 0 and 1, not being displayed in email fields
…ially in 123 mode
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated no new comments.
Comments suppressed due to low confidence (1)
app/src/main/java/io/github/sspanak/tt9/ui/main/keys/SoftKeyNumberNumpad.java:72
- handleHold()/handleRelease() now map the displayed number to a keyCode using
tt9.getSettings()(soUpsideDownKeysremapping applies), butgetHoldCommand()still looks up the hotkey using-Key.numberToCode(getNumber())without settings. With upside-down keys enabled this can make the corner icon/hold-command preview incorrect (and potentially misleading), because the lookup keyCode no longer matches the keyCode actually sent on hold/release.
Consider updating getHoldCommand() to compute the keyCode the same way as the event handlers (i.e., Key.numberToCode(tt9.getSettings(), getNumber())).
preventRepeat();
int keyCode = Key.numberToCode(tt9 != null ? tt9.getSettings() : null, getNumber());
if (keyCode < 0 || !validateTT9Handler()) {
return;
}
vibrate(Vibration.getHoldVibration());
tt9.onKeyLongPress(keyCode, new KeyEvent(KeyEvent.ACTION_DOWN, keyCode));
tt9.onKeyUp(keyCode, new KeyEvent(KeyEvent.ACTION_UP, keyCode));
}
@Override
protected boolean handleRelease() {
int keyCode = Key.numberToCode(tt9 != null ? tt9.getSettings() : null, getNumber());
if (keyCode < 0 || !validateTT9Handler()) {
Fixes #1134
Fixes the passport.yandex.com problem in #1102, and potentially makes typing in Firefox smoother... but who knows...