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 aaf1dc69..b8d8427d 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,8 +1,6 @@ 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; @@ -11,15 +9,11 @@ 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 = false; - - @Override protected void onInit() { if (settings.areHotkeysInitialized()) { @@ -28,13 +22,6 @@ 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(); } @@ -208,11 +195,7 @@ public abstract class HotkeyHandler extends TypingHandler { return true; } - suggestionOps.cancelDelayedAccept(); - backward = isSystemRTL != backward; - suggestionOps.scrollTo(backward ? -1 : 1); - mInputMode.setWordStem(suggestionOps.getCurrent(), true); - appHacks.setComposingTextWithHighlightedStem(suggestionOps.getCurrent(), mInputMode); + 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 4747dfe3..92b18462 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,6 +19,7 @@ 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; @@ -29,6 +30,7 @@ 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<>(); @@ -62,6 +64,7 @@ public abstract class TypingHandler extends KeyPadHandler { return false; } + isSystemRTL = LanguageKind.isRTL(LanguageCollection.getDefault(this)); resetKeyRepeat(); mInputMode = getInputMode(); determineTextCase(); @@ -156,7 +159,7 @@ public abstract class TypingHandler extends KeyPadHandler { } if (mInputMode.shouldSelectNextSuggestion() && !suggestionOps.isEmpty()) { - onHotkey(settings.getKeyNextSuggestion(), false, false); + scrollSuggestions(false); suggestionOps.scheduleDelayedAccept(mInputMode.getAutoAcceptTimeout()); } else { getSuggestions(); @@ -326,4 +329,13 @@ public abstract class TypingHandler extends KeyPadHandler { forceShowWindowIfHidden(); } + + + 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); + } }