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

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

am 7e51989b: Merge "[AC7] Actually auto-commit."

* commit '7e51989b':
  [AC7] Actually auto-commit.
parents 55fd8c23 7e51989b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -186,7 +186,7 @@ public final class BinaryDictionary extends Dictionary {
                // flags too and pass mOutputTypes[j] instead of kind
                suggestions.add(new SuggestedWordInfo(new String(mOutputCodePoints, start, len),
                        score, kind, this /* sourceDict */,
                        mSpaceIndices[0] /* indexOfTouchPointOfSecondWord */,
                        mSpaceIndices[j] /* indexOfTouchPointOfSecondWord */,
                        mOutputAutoCommitFirstWordConfidence[0]));
            }
        }
+11 −0
Original line number Diff line number Diff line
@@ -105,6 +105,17 @@ public final class InputPointers {
        mTimes.append(times, startPos, length);
    }

    /**
     * Shift to the left by elementCount, discarding elementCount pointers at the start.
     * @param elementCount how many elements to shift.
     */
    public void shift(final int elementCount) {
        mXCoordinates.shift(elementCount);
        mYCoordinates.shift(elementCount);
        mPointerIds.shift(elementCount);
        mTimes.shift(elementCount);
    }

    public void reset() {
        final int defaultCapacity = mDefaultCapacity;
        mXCoordinates.reset(defaultCapacity);
+25 −6
Original line number Diff line number Diff line
@@ -1847,10 +1847,18 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen

    @Override
    public void onUpdateBatchInput(final InputPointers batchPointers) {
        if (mSettings.getCurrent().mPhraseGestureEnabled) {
            final SuggestedWordInfo candidate = mSuggestedWords.getAutoCommitCandidate();
            if (null != candidate) {
                if (candidate.mSourceDict.shouldAutoCommit(candidate)) {
                // TODO: implement auto-commit
                    final String[] commitParts = candidate.mWord.split(" ", 2);
                    batchPointers.shift(candidate.mIndexOfTouchPointOfSecondWord);
                    promotePhantomSpace();
                    mConnection.commitText(commitParts[0], 0);
                    mSpaceState = SPACE_STATE_PHANTOM;
                    mKeyboardSwitcher.updateShiftState();
                    mWordComposer.setCapitalizedModeAtStartComposingTime(getActualCapsMode());
                }
            }
        }
        mInputUpdater.onUpdateBatchInput(batchPointers);
@@ -1863,12 +1871,23 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
        if (TextUtils.isEmpty(batchInputText)) {
            return;
        }
        mWordComposer.setBatchInputWord(batchInputText);
        mConnection.beginBatchEdit();
        if (SPACE_STATE_PHANTOM == mSpaceState) {
            promotePhantomSpace();
        }
        if (mSettings.getCurrent().mPhraseGestureEnabled) {
            // Find the last space
            final int indexOfLastSpace = batchInputText.lastIndexOf(Constants.CODE_SPACE) + 1;
            if (0 != indexOfLastSpace) {
                mConnection.commitText(batchInputText.substring(0, indexOfLastSpace), 1);
            }
            final String lastWord = batchInputText.substring(indexOfLastSpace);
            mWordComposer.setBatchInputWord(lastWord);
            mConnection.setComposingText(lastWord, 1);
        } else {
            mWordComposer.setBatchInputWord(batchInputText);
            mConnection.setComposingText(batchInputText, 1);
        }
        mExpectingUpdateSelection = true;
        mConnection.endBatchEdit();
        if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) {
+9 −0
Original line number Diff line number Diff line
@@ -132,6 +132,15 @@ public final class ResizableIntArray {
        }
    }

    /**
     * Shift to the left by elementCount, discarding elementCount pointers at the start.
     * @param elementCount how many elements to shift.
     */
    public void shift(final int elementCount) {
        System.arraycopy(mArray, elementCount, mArray, 0, mLength - elementCount);
        mLength -= elementCount;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder();
+16 −0
Original line number Diff line number Diff line
@@ -244,4 +244,20 @@ public class InputPointersTests extends AndroidTestCase {
                    expecteds[i + expectedPos], actuals[i + actualPos]);
        }
    }

    public void testShift() {
        final InputPointers src = new InputPointers(DEFAULT_CAPACITY);
        final int limit = 100;
        final int shiftAmount = 20;
        for (int i = 0; i < limit; i++) {
            src.addPointer(i, i * 2, i * 3, i * 4);
        }
        src.shift(shiftAmount);
        for (int i = 0; i < limit - shiftAmount; ++i) {
            assertEquals("xCoordinates at " + i, i + shiftAmount, src.getXCoordinates()[i]);
            assertEquals("yCoordinates at " + i, (i + shiftAmount) * 2, src.getYCoordinates()[i]);
            assertEquals("pointerIds at " + i, (i + shiftAmount) * 3, src.getPointerIds()[i]);
            assertEquals("times at " + i, (i + shiftAmount) * 4, src.getTimes()[i]);
        }
    }
}
Loading