From b08431ef1b98c2f9054e2209881c69bb59300205 Mon Sep 17 00:00:00 2001 From: sspanak Date: Sat, 12 Apr 2025 20:37:30 +0300 Subject: [PATCH] fixed inconsistencies with setting the punctuation order (there should be no functional changes) --- .../sspanak/tt9/ime/modes/ModeCheonjiin.java | 28 ++++++++++++------- .../sspanak/tt9/ime/modes/ModeWords.java | 1 - 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeCheonjiin.java b/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeCheonjiin.java index 038af284..b3d1096d 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeCheonjiin.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/modes/ModeCheonjiin.java @@ -48,24 +48,16 @@ class ModeCheonjiin extends InputMode { SPECIAL_CHAR_SEQUENCE_PREFIX = "11"; - super.setLanguage(LanguageCollection.getLanguage(LanguageKind.KOREAN)); - autoSpace = new AutoSpace(settings).setLanguage(language); + autoSpace = new AutoSpace(settings); digitSequence = ""; allowedTextCases.add(CASE_LOWER); this.inputType = inputType; this.textField = textField; + setLanguage(LanguageCollection.getLanguage(LanguageKind.KOREAN)); initPredictions(); setSpecialCharacterConstants(); - - if (isEmailMode) { - // Note: applyPunctuationOrder() requires the language to be set - KEY_CHARACTERS.add(applyPunctuationOrder(Characters.Email.get(0), 0)); - KEY_CHARACTERS.add(applyPunctuationOrder(Characters.Email.get(1), 1)); - } else { - setCustomSpecialCharacters(); - } } @@ -86,6 +78,22 @@ class ModeCheonjiin extends InputMode { } + @Override + protected void setLanguage(@Nullable Language newLanguage) { + super.setLanguage(newLanguage); + + autoSpace.setLanguage(language); + + KEY_CHARACTERS.clear(); + if (isEmailMode) { + KEY_CHARACTERS.add(applyPunctuationOrder(Characters.Email.get(0), 0)); + KEY_CHARACTERS.add(applyPunctuationOrder(Characters.Email.get(1), 1)); + } else { + setCustomSpecialCharacters(); + } + } + + protected void setSpecialCharacterConstants() { CUSTOM_EMOJI_SEQUENCE = SPECIAL_CHAR_SEQUENCE_PREFIX + EmojiLanguage.CUSTOM_EMOJI_SEQUENCE; EMOJI_SEQUENCE = SPECIAL_CHAR_SEQUENCE_PREFIX + EmojiLanguage.EMOJI_SEQUENCE; 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 3c701930..775aa5af 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 @@ -122,7 +122,6 @@ class ModeWords extends ModeCheonjiin { @Override protected void setLanguage(@Nullable Language newLanguage) { super.setLanguage(newLanguage); - autoSpace.setLanguage(language); allowedTextCases.clear(); allowedTextCases.add(CASE_LOWER);