diff options
Diffstat (limited to 'java/src/com/android/inputmethod/latin')
-rw-r--r-- | java/src/com/android/inputmethod/latin/WordComposer.java | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java index 29382fea4..a60ca3d41 100644 --- a/java/src/com/android/inputmethod/latin/WordComposer.java +++ b/java/src/com/android/inputmethod/latin/WordComposer.java @@ -127,6 +127,7 @@ public final class WordComposer { * Clear out the keys registered so far. */ public void reset() { + mCombinerChain.reset(); mTypedWord.setLength(0); mEvents.clear(); mAutoCorrection = null; @@ -166,13 +167,6 @@ public final class WordComposer { return mPrimaryKeyCodes[index]; } - public int getCodeBeforeCursor() { - if (mCursorPositionWithinWord < 1 || mCursorPositionWithinWord > mPrimaryKeyCodes.length) { - return Constants.NOT_A_CODE; - } - return mPrimaryKeyCodes[mCursorPositionWithinWord - 1]; - } - public InputPointers getInputPointers() { return mInputPointers; } @@ -193,7 +187,10 @@ public final class WordComposer { final int keyY = event.mY; final int newIndex = size(); mCombinerChain.processEvent(mEvents, event); - mTypedWord.appendCodePoint(primaryCode); + // TODO: remove mTypedWord and compute it dynamically when necessary. We also need to + // make the views of the composing word a SpannableString. + mTypedWord.replace(0, mTypedWord.length(), + mCombinerChain.getComposingWordWithCombiningFeedback().toString()); mEvents.add(event); refreshSize(); mCursorPositionWithinWord = mCodePointSize; @@ -243,6 +240,8 @@ public final class WordComposer { * @return true if the cursor is still inside the composing word, false otherwise. */ public boolean moveCursorByAndReturnIfInsideComposingWord(final int expectedMoveAmount) { + // TODO: should uncommit the composing feedback + mCombinerChain.reset(); int actualMoveAmountWithinWord = 0; int cursorPos = mCursorPositionWithinWord; final int[] codePoints; @@ -482,6 +481,7 @@ public final class WordComposer { mIsBatchMode = false; mPreviousWordForSuggestion = committedWord.toString(); mTypedWord.setLength(0); + mCombinerChain.reset(); mEvents.clear(); mCodePointSize = 0; mTrailingSingleQuotesCount = 0; @@ -509,6 +509,7 @@ public final class WordComposer { Collections.copy(mEvents, lastComposedWord.mEvents); mInputPointers.set(lastComposedWord.mInputPointers); mTypedWord.setLength(0); + mCombinerChain.reset(); mTypedWord.append(lastComposedWord.mTypedWord); refreshSize(); mCapitalizedMode = lastComposedWord.mCapitalizedMode; |