From 6c9fd2df1d645f31f490a81bdbb733c7d22d2b10 Mon Sep 17 00:00:00 2001 From: sspanak Date: Tue, 10 Jun 2025 14:59:21 +0300 Subject: [PATCH] fixed words being incorrectly capitalized when switching between languages while typing --- .../main/java/io/github/sspanak/tt9/ime/CommandHandler.java | 3 +-- .../main/java/io/github/sspanak/tt9/ime/modes/ModeWords.java | 3 ++- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/CommandHandler.java b/app/src/main/java/io/github/sspanak/tt9/ime/CommandHandler.java index c7ed1bd9..be183aa5 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/CommandHandler.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/CommandHandler.java @@ -188,11 +188,10 @@ abstract public class CommandHandler extends TextEditingHandler { // for languages that do not have ABC or Predictive, make sure we remain in valid state final String digits = mInputMode.getSequence(); - final int textCase = mInputMode.getTextCase(); mInputMode = InputMode.getInstance(settings, mLanguage, inputType, textField, determineInputModeId()); if (!InputModeKind.isNumeric(mInputMode)) { - mInputMode.setTextCase(textCase); mInputMode.setSequence(digits); + mInputMode.determineNextWordTextCase(-1); } getSuggestions(null); diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeWords.java b/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeWords.java index 134d3bd5..388e82fa 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeWords.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeWords.java @@ -344,7 +344,8 @@ class ModeWords extends ModeCheonjiin { @Override public void determineNextWordTextCase(int nextDigit) { - textCase = autoTextCase.determineNextWordTextCase(language, textCase, textFieldTextCase, textField.getStringBeforeCursor(), digitSequence + nextDigit); + final String nextSequence = nextDigit >= 0 ? digitSequence + nextDigit : digitSequence; + textCase = autoTextCase.determineNextWordTextCase(language, textCase, textFieldTextCase, textField.getStringBeforeCursor(), nextSequence); } private void determineTextFieldTextCase() {