diff --git a/app/src/main/java/helium314/keyboard/latin/LatinIME.java b/app/src/main/java/helium314/keyboard/latin/LatinIME.java index c188f56ea..aecacd5f6 100644 --- a/app/src/main/java/helium314/keyboard/latin/LatinIME.java +++ b/app/src/main/java/helium314/keyboard/latin/LatinIME.java @@ -1630,7 +1630,11 @@ public class LatinIME extends InputMethodService implements @Override public void showSuggestionStrip(final SuggestedWords suggestedWords) { if (suggestedWords.isEmpty()) { - setNeutralSuggestionStrip(); + // avoids showing clipboard suggestion when starting gesture typing + // should be fine, as there will be another suggestion in a few ms + // (but not a great style to avoid this visual glitch, maybe revert this commit and replace with sth better) + if (suggestedWords.mInputStyle != SuggestedWords.INPUT_STYLE_UPDATE_BATCH) + setNeutralSuggestionStrip(); } else { setSuggestedWords(suggestedWords); } diff --git a/app/src/main/java/helium314/keyboard/latin/SuggestedWords.java b/app/src/main/java/helium314/keyboard/latin/SuggestedWords.java index ae99601e6..a6eae0984 100644 --- a/app/src/main/java/helium314/keyboard/latin/SuggestedWords.java +++ b/app/src/main/java/helium314/keyboard/latin/SuggestedWords.java @@ -39,9 +39,13 @@ public class SuggestedWords { private static final ArrayList EMPTY_WORD_INFO_LIST = new ArrayList<>(0); @NonNull private static final SuggestedWords EMPTY = new SuggestedWords( - EMPTY_WORD_INFO_LIST, null /* rawSuggestions */, null /* typedWord */, - false /* typedWordValid */, false /* willAutoCorrect */, - false /* isObsoleteSuggestions */, INPUT_STYLE_NONE, NOT_A_SEQUENCE_NUMBER); + EMPTY_WORD_INFO_LIST, null, null, false, + false, false, INPUT_STYLE_NONE, NOT_A_SEQUENCE_NUMBER); + + @NonNull + private static final SuggestedWords EMPTY_BATCH = new SuggestedWords( + EMPTY_WORD_INFO_LIST, null, null, false, + false, false, INPUT_STYLE_UPDATE_BATCH, NOT_A_SEQUENCE_NUMBER); @Nullable public final SuggestedWordInfo mTypedWordInfo; @@ -195,6 +199,11 @@ public class SuggestedWords { return SuggestedWords.EMPTY; } + @NonNull + public static SuggestedWords getEmptyBatchInstance() { + return SuggestedWords.EMPTY_BATCH; + } + // Should get rid of the first one (what the user typed previously) from suggestions // and replace it with what the user currently typed. public static ArrayList getTypedWordAndPreviousSuggestions( diff --git a/app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java b/app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java index 32b9a004d..927f744e5 100644 --- a/app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java +++ b/app/src/main/java/helium314/keyboard/latin/inputlogic/InputLogic.java @@ -511,8 +511,7 @@ public final class InputLogic { final KeyboardSwitcher keyboardSwitcher, final LatinIME.UIHandler handler) { mWordBeingCorrectedByCursor = null; mInputLogicHandler.onStartBatchInput(); - handler.showGesturePreviewAndSuggestionStrip( - SuggestedWords.getEmptyInstance(), false /* dismissGestureFloatingPreviewText */); + handler.showGesturePreviewAndSuggestionStrip(SuggestedWords.getEmptyBatchInstance(), false); handler.cancelUpdateSuggestionStrip(); ++mAutoCommitSequenceNumber; mConnection.beginBatchEdit();