aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/com/android/inputmethod/latin')
-rw-r--r--java/src/com/android/inputmethod/latin/WordComposer.java17
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;