Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ae731331 authored by Jean Chalard's avatar Jean Chalard Committed by Android Git Automerger
Browse files

am be0e013b: am 059e084e: Merge "Reject a previously user-refused suggestion."

* commit 'be0e013b':
  Reject a previously user-refused suggestion.
parents 577dc189 be0e013b
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1747,7 +1747,9 @@ public final class LatinIME extends InputMethodService implements KeyboardAction
                        ResearchLogger.getInstance().uncommitCurrentLogUnit(
                                word, false /* dumpCurrentLogUnit */);
                    }
                    final String rejectedSuggestion = mWordComposer.getTypedWord();
                    mWordComposer.reset();
                    mWordComposer.setRejectedBatchModeSuggestion(rejectedSuggestion);
                } else {
                    mWordComposer.deleteLast();
                }
+5 −0
Original line number Diff line number Diff line
@@ -334,6 +334,11 @@ public final class Suggest {
            }
        }

        if (suggestionsContainer.size() > 1 && TextUtils.equals(suggestionsContainer.get(0).mWord,
                wordComposer.getRejectedBatchModeSuggestion())) {
            final SuggestedWordInfo rejected = suggestionsContainer.remove(0);
            suggestionsContainer.add(1, rejected);
        }
        SuggestedWordInfo.removeDups(suggestionsContainer);
        // In the batch input mode, the most relevant suggested word should act as a "typed word"
        // (typedWordValid=true), not as an "auto correct word" (willAutoCorrect=false).
+20 −0
Original line number Diff line number Diff line
@@ -42,6 +42,13 @@ public final class WordComposer {
    private String mAutoCorrection;
    private boolean mIsResumed;
    private boolean mIsBatchMode;
    // A memory of the last rejected batch mode suggestion, if any. This goes like this: the user
    // gestures a word, is displeased with the results and hits backspace, then gestures again.
    // At the very least we should avoid re-suggesting the same thing, and to do that we memorize
    // the rejected suggestion in this variable.
    // TODO: this should be done in a comprehensive way by the User History feature instead of
    // as an ad-hockery here.
    private String mRejectedBatchModeSuggestion;

    // Cache these values for performance
    private int mCapsCount;
@@ -64,6 +71,7 @@ public final class WordComposer {
        mIsResumed = false;
        mIsBatchMode = false;
        mCursorPositionWithinWord = 0;
        mRejectedBatchModeSuggestion = null;
        refreshSize();
    }

@@ -79,6 +87,7 @@ public final class WordComposer {
        mIsResumed = source.mIsResumed;
        mIsBatchMode = source.mIsBatchMode;
        mCursorPositionWithinWord = source.mCursorPositionWithinWord;
        mRejectedBatchModeSuggestion = source.mRejectedBatchModeSuggestion;
        refreshSize();
    }

@@ -95,6 +104,7 @@ public final class WordComposer {
        mIsResumed = false;
        mIsBatchMode = false;
        mCursorPositionWithinWord = 0;
        mRejectedBatchModeSuggestion = null;
        refreshSize();
    }

@@ -384,6 +394,7 @@ public final class WordComposer {
        mAutoCorrection = null;
        mCursorPositionWithinWord = 0;
        mIsResumed = false;
        mRejectedBatchModeSuggestion = null;
        return lastComposedWord;
    }

@@ -396,10 +407,19 @@ public final class WordComposer {
        mCapitalizedMode = lastComposedWord.mCapitalizedMode;
        mAutoCorrection = null; // This will be filled by the next call to updateSuggestion.
        mCursorPositionWithinWord = mCodePointSize;
        mRejectedBatchModeSuggestion = null;
        mIsResumed = true;
    }

    public boolean isBatchMode() {
        return mIsBatchMode;
    }

    public void setRejectedBatchModeSuggestion(final String rejectedSuggestion) {
        mRejectedBatchModeSuggestion = rejectedSuggestion;
    }

    public String getRejectedBatchModeSuggestion() {
        return mRejectedBatchModeSuggestion;
    }
}