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

Commit a7f25000 authored by Jean Chalard's avatar Jean Chalard
Browse files

Fix a bug with common objects.

Bug: 5961179
Change-Id: I452efc552c6ab390931f25557d7aee5a64bf054e
parent a27cb623
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -51,6 +51,8 @@ public class LastComposedWord {
    public static final LastComposedWord NOT_A_COMPOSED_WORD =
            new LastComposedWord(null, null, null, "", "");

    // 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 ArrayList<int[]> codes, final int[] xCoordinates,
            final int[] yCoordinates, final String typedWord, final String autoCorrection) {
        mCodes = codes;
+2 −5
Original line number Diff line number Diff line
@@ -2201,9 +2201,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
        // new composing text.
        final int restartLength = mWordComposer.size();
        if (DEBUG) {
            final String wordBeforeCursor =
                ic.getTextBeforeCursor(restartLength + 1, 0).subSequence(0, restartLength)
                .toString();
            final String wordBeforeCursor = ic.getTextBeforeCursor(restartLength, 0).toString();
            if (!TextUtils.equals(mWordComposer.getTypedWord(), wordBeforeCursor)) {
                throw new RuntimeException("restartSuggestionsOnManuallyPickedTypedWord "
                        + "check failed: we thought we were reverting \""
@@ -2212,8 +2210,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar
                        + wordBeforeCursor + "\"");
            }
        }
        // Warning: this +1 takes into account the extra space added by the manual pick process.
        ic.deleteSurroundingText(restartLength + 1, 0);
        ic.deleteSurroundingText(restartLength, 0);
        ic.setComposingText(mWordComposer.getTypedWord(), 1);
        mHandler.cancelUpdateBigramPredictions();
        mHandler.postUpdateSuggestions();
+8 −3
Original line number Diff line number Diff line
@@ -310,13 +310,18 @@ public class WordComposer {
        // LastComposedWord#didAutoCorrectToAnotherWord with #equals(). It would be marginally
        // cleaner to do it here, but it would be slower (since we would #equals() for each commit,
        // instead of only on cancel), and ultimately we want to figure it out even earlier anyway.
        final LastComposedWord lastComposedWord = new LastComposedWord(mCodes,
                mXCoordinates, mYCoordinates, mTypedWord.toString(),
        final ArrayList<int[]> codes = mCodes;
        final int[] xCoordinates = mXCoordinates;
        final int[] yCoordinates = mYCoordinates;
        mCodes = new ArrayList<int[]>(N);
        mXCoordinates = new int[N];
        mYCoordinates = new int[N];
        final LastComposedWord lastComposedWord = new LastComposedWord(codes,
                xCoordinates, yCoordinates, mTypedWord.toString(),
                null == mAutoCorrection ? null : mAutoCorrection.toString());
        if (type != LastComposedWord.COMMIT_TYPE_DECIDED_WORD) {
            lastComposedWord.deactivate();
        }
        mCodes.clear();
        mTypedWord.setLength(0);
        mAutoCorrection = null;
        return lastComposedWord;