diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/HotkeyHandler.java b/app/src/main/java/io/github/sspanak/tt9/ime/HotkeyHandler.java index c9bb1942..fc6c8655 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/HotkeyHandler.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/HotkeyHandler.java @@ -1,6 +1,8 @@ package io.github.sspanak.tt9.ime; import android.view.KeyEvent; +import android.view.inputmethod.EditorInfo; +import android.view.inputmethod.InputConnection; import io.github.sspanak.tt9.R; import io.github.sspanak.tt9.db.DictionaryLoader; @@ -9,11 +11,15 @@ import io.github.sspanak.tt9.ime.modes.InputMode; import io.github.sspanak.tt9.ime.modes.ModeABC; import io.github.sspanak.tt9.ime.modes.ModePredictive; import io.github.sspanak.tt9.languages.LanguageCollection; +import io.github.sspanak.tt9.languages.LanguageKind; import io.github.sspanak.tt9.preferences.helpers.Hotkeys; import io.github.sspanak.tt9.ui.UI; import io.github.sspanak.tt9.ui.dialogs.AddWordDialog; public abstract class HotkeyHandler extends TypingHandler { + private boolean isSystemRTL; + + @Override protected void onInit() { if (settings.areHotkeysInitialized()) { @@ -22,6 +28,13 @@ public abstract class HotkeyHandler extends TypingHandler { } + @Override + protected boolean onStart(InputConnection connection, EditorInfo field) { + isSystemRTL = LanguageKind.isRTL(LanguageCollection.getDefault(this)); + return super.onStart(connection, field); + } + + @Override public boolean onBack() { return settings.isMainLayoutNumpad(); } @@ -195,6 +208,7 @@ public abstract class HotkeyHandler extends TypingHandler { return true; } + backward = isSystemRTL != backward; scrollSuggestions(backward); return true; diff --git a/app/src/main/java/io/github/sspanak/tt9/ime/TypingHandler.java b/app/src/main/java/io/github/sspanak/tt9/ime/TypingHandler.java index 8e2f53ae..6bb49904 100644 --- a/app/src/main/java/io/github/sspanak/tt9/ime/TypingHandler.java +++ b/app/src/main/java/io/github/sspanak/tt9/ime/TypingHandler.java @@ -19,7 +19,6 @@ import io.github.sspanak.tt9.ime.modes.InputMode; import io.github.sspanak.tt9.ime.modes.ModePredictive; import io.github.sspanak.tt9.languages.Language; import io.github.sspanak.tt9.languages.LanguageCollection; -import io.github.sspanak.tt9.languages.LanguageKind; import io.github.sspanak.tt9.ui.UI; import io.github.sspanak.tt9.util.Text; @@ -30,7 +29,6 @@ public abstract class TypingHandler extends KeyPadHandler { @NonNull protected InputType inputType = new InputType(null, null); @NonNull protected TextField textField = new TextField(null, null); protected SuggestionOps suggestionOps; - private boolean isSystemRTL; // input protected ArrayList allowedInputModes = new ArrayList<>(); @@ -63,7 +61,6 @@ public abstract class TypingHandler extends KeyPadHandler { return false; } - isSystemRTL = LanguageKind.isRTL(LanguageCollection.getDefault(this)); resetKeyRepeat(); mInputMode = getInputMode(); determineTextCase(); @@ -354,7 +351,6 @@ public abstract class TypingHandler extends KeyPadHandler { protected void scrollSuggestions(boolean backward) { suggestionOps.cancelDelayedAccept(); - backward = isSystemRTL != backward; suggestionOps.scrollTo(backward ? -1 : 1); mInputMode.setWordStem(suggestionOps.getCurrent(), true); appHacks.setComposingTextWithHighlightedStem(suggestionOps.getCurrent(), mInputMode);