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

Commit f459ccf4 authored by Jean Chalard's avatar Jean Chalard Committed by Android (Google) Code Review
Browse files

Merge "Revert "[CB16] Remove unused stuff""

parents 5154c47c 26baa759
Loading
Loading
Loading
Loading
+16 −3
Original line number Diff line number Diff line
@@ -38,25 +38,38 @@ public final class LastComposedWord {
    // or it may be exactly what the user typed if it's in the dictionary or the IME does not have
    // enough confidence in any suggestion to auto-correct (auto-correct to typed word).
    public static final int COMMIT_TYPE_DECIDED_WORD = 2;
    // COMMIT_TYPE_CANCEL_AUTO_CORRECT is used upon committing back the old word upon cancelling
    // an auto-correction.
    public static final int COMMIT_TYPE_CANCEL_AUTO_CORRECT = 3;

    public static final String NOT_A_SEPARATOR = "";

    public final ArrayList<Event> mEvents;
    public final String mTypedWord;
    public final CharSequence mCommittedWord;
    public final String mSeparatorString;
    public final String mPrevWord;
    public final int mCapitalizedMode;
    public final InputPointers mInputPointers =
            new InputPointers(Constants.DICTIONARY_MAX_WORD_LENGTH);

    private boolean mActive;

    public static final LastComposedWord NOT_A_COMPOSED_WORD =
            new LastComposedWord("", "", NOT_A_SEPARATOR, null, WordComposer.CAPS_MODE_OFF);
            new LastComposedWord(new ArrayList<Event>(), null, "", "",
                    NOT_A_SEPARATOR, null, WordComposer.CAPS_MODE_OFF);

    // Warning: this is using the passed objects as is and fully expects them to be
    // immutable. Do not fiddle with their contents after you passed them to this constructor.
    public LastComposedWord(final String typedWord, final CharSequence committedWord,
            final String separatorString, final String prevWord, final int capitalizedMode) {
    public LastComposedWord(final ArrayList<Event> events,
            final InputPointers inputPointers, final String typedWord,
            final CharSequence committedWord, final String separatorString,
            final String prevWord, final int capitalizedMode) {
        if (inputPointers != null) {
            mInputPointers.copy(inputPointers);
        }
        mTypedWord = typedWord;
        mEvents = new ArrayList<Event>(events);
        mCommittedWord = committedWord;
        mSeparatorString = separatorString;
        mActive = true;
+21 −2
Original line number Diff line number Diff line
@@ -426,8 +426,9 @@ public final class WordComposer {
        // Note: currently, we come here whenever we commit a word. If it's a MANUAL_PICK
        // or a DECIDED_WORD we may cancel the commit later; otherwise, we should deactivate
        // the last composed word to ensure this does not happen.
        final LastComposedWord lastComposedWord = new LastComposedWord(
                mTypedWord.toString(), committedWord, separatorString, prevWord, mCapitalizedMode);
        final LastComposedWord lastComposedWord = new LastComposedWord(mEvents,
                mInputPointers, mTypedWord.toString(), committedWord, separatorString,
                prevWord, mCapitalizedMode);
        mInputPointers.reset();
        if (type != LastComposedWord.COMMIT_TYPE_DECIDED_WORD
                && type != LastComposedWord.COMMIT_TYPE_MANUAL_PICK) {
@@ -458,6 +459,24 @@ public final class WordComposer {
    public void discardPreviousWordForSuggestion() {
        mPreviousWordForSuggestion = null;
    }

    public void resumeSuggestionOnLastComposedWord(final LastComposedWord lastComposedWord,
            final String previousWord) {
        mEvents.clear();
        Collections.copy(mEvents, lastComposedWord.mEvents);
        mInputPointers.set(lastComposedWord.mInputPointers);
        mTypedWord.setLength(0);
        mCombinerChain.reset();
        mTypedWord.append(lastComposedWord.mTypedWord);
        refreshSize();
        mCapitalizedMode = lastComposedWord.mCapitalizedMode;
        mAutoCorrection = null; // This will be filled by the next call to updateSuggestion.
        mCursorPositionWithinWord = mCodePointSize;
        mRejectedBatchModeSuggestion = null;
        mIsResumed = true;
        mPreviousWordForSuggestion = previousWord;
    }

    public boolean isBatchMode() {
        return mIsBatchMode;
    }