fixed v30.0 regression: ABC mode allowing selection of only the first letter per key when Next Suggestion hotkey is unset
This commit is contained in:
parent
6225448eee
commit
2600ceef6b
2 changed files with 14 additions and 19 deletions
|
|
@ -1,8 +1,6 @@
|
||||||
package io.github.sspanak.tt9.ime;
|
package io.github.sspanak.tt9.ime;
|
||||||
|
|
||||||
import android.view.KeyEvent;
|
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.R;
|
||||||
import io.github.sspanak.tt9.db.DictionaryLoader;
|
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.ModeABC;
|
||||||
import io.github.sspanak.tt9.ime.modes.ModePredictive;
|
import io.github.sspanak.tt9.ime.modes.ModePredictive;
|
||||||
import io.github.sspanak.tt9.languages.LanguageCollection;
|
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.preferences.helpers.Hotkeys;
|
||||||
import io.github.sspanak.tt9.ui.UI;
|
import io.github.sspanak.tt9.ui.UI;
|
||||||
import io.github.sspanak.tt9.ui.dialogs.AddWordDialog;
|
import io.github.sspanak.tt9.ui.dialogs.AddWordDialog;
|
||||||
|
|
||||||
public abstract class HotkeyHandler extends TypingHandler {
|
public abstract class HotkeyHandler extends TypingHandler {
|
||||||
private boolean isSystemRTL = false;
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onInit() {
|
protected void onInit() {
|
||||||
if (settings.areHotkeysInitialized()) {
|
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() {
|
@Override public boolean onBack() {
|
||||||
return settings.isMainLayoutNumpad();
|
return settings.isMainLayoutNumpad();
|
||||||
}
|
}
|
||||||
|
|
@ -208,11 +195,7 @@ public abstract class HotkeyHandler extends TypingHandler {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
suggestionOps.cancelDelayedAccept();
|
scrollSuggestions(backward);
|
||||||
backward = isSystemRTL != backward;
|
|
||||||
suggestionOps.scrollTo(backward ? -1 : 1);
|
|
||||||
mInputMode.setWordStem(suggestionOps.getCurrent(), true);
|
|
||||||
appHacks.setComposingTextWithHighlightedStem(suggestionOps.getCurrent(), mInputMode);
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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.ime.modes.ModePredictive;
|
||||||
import io.github.sspanak.tt9.languages.Language;
|
import io.github.sspanak.tt9.languages.Language;
|
||||||
import io.github.sspanak.tt9.languages.LanguageCollection;
|
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.ui.UI;
|
||||||
import io.github.sspanak.tt9.util.Text;
|
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 InputType inputType = new InputType(null, null);
|
||||||
@NonNull protected TextField textField = new TextField(null, null);
|
@NonNull protected TextField textField = new TextField(null, null);
|
||||||
protected SuggestionOps suggestionOps;
|
protected SuggestionOps suggestionOps;
|
||||||
|
private boolean isSystemRTL;
|
||||||
|
|
||||||
// input
|
// input
|
||||||
protected ArrayList<Integer> allowedInputModes = new ArrayList<>();
|
protected ArrayList<Integer> allowedInputModes = new ArrayList<>();
|
||||||
|
|
@ -62,6 +64,7 @@ public abstract class TypingHandler extends KeyPadHandler {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isSystemRTL = LanguageKind.isRTL(LanguageCollection.getDefault(this));
|
||||||
resetKeyRepeat();
|
resetKeyRepeat();
|
||||||
mInputMode = getInputMode();
|
mInputMode = getInputMode();
|
||||||
determineTextCase();
|
determineTextCase();
|
||||||
|
|
@ -156,7 +159,7 @@ public abstract class TypingHandler extends KeyPadHandler {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mInputMode.shouldSelectNextSuggestion() && !suggestionOps.isEmpty()) {
|
if (mInputMode.shouldSelectNextSuggestion() && !suggestionOps.isEmpty()) {
|
||||||
onHotkey(settings.getKeyNextSuggestion(), false, false);
|
scrollSuggestions(false);
|
||||||
suggestionOps.scheduleDelayedAccept(mInputMode.getAutoAcceptTimeout());
|
suggestionOps.scheduleDelayedAccept(mInputMode.getAutoAcceptTimeout());
|
||||||
} else {
|
} else {
|
||||||
getSuggestions();
|
getSuggestions();
|
||||||
|
|
@ -326,4 +329,13 @@ public abstract class TypingHandler extends KeyPadHandler {
|
||||||
|
|
||||||
forceShowWindowIfHidden();
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue