aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/event/CombinerChain.java
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2014-03-25 10:46:31 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-03-25 10:46:32 +0000
commit071b9c1a054bd2bfe3131572de02b30442b01ea3 (patch)
treeb5c35b7afbe8b3d4ad16249ff42821518ed44c67 /java/src/com/android/inputmethod/event/CombinerChain.java
parenteddbb7ac88c3174ffdc38a9dd799029302f55d03 (diff)
parent1079665c3c017ee024a2ffdaf3488cc8c37f087a (diff)
downloadlatinime-071b9c1a054bd2bfe3131572de02b30442b01ea3.tar.gz
latinime-071b9c1a054bd2bfe3131572de02b30442b01ea3.tar.xz
latinime-071b9c1a054bd2bfe3131572de02b30442b01ea3.zip
Merge "[CB14] Implement backspace in the combiner chain"
Diffstat (limited to 'java/src/com/android/inputmethod/event/CombinerChain.java')
-rw-r--r--java/src/com/android/inputmethod/event/CombinerChain.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/java/src/com/android/inputmethod/event/CombinerChain.java b/java/src/com/android/inputmethod/event/CombinerChain.java
index 5ca9842c1..8b59dc52a 100644
--- a/java/src/com/android/inputmethod/event/CombinerChain.java
+++ b/java/src/com/android/inputmethod/event/CombinerChain.java
@@ -17,7 +17,9 @@
package com.android.inputmethod.event;
import android.text.SpannableStringBuilder;
+import android.text.TextUtils;
+import com.android.inputmethod.latin.Constants;
import com.android.inputmethod.latin.utils.CollectionUtils;
import java.util.ArrayList;
@@ -84,7 +86,19 @@ public class CombinerChain {
}
}
if (null != event) {
- mCombinedText.append(event.getTextToCommit());
+ // TODO: figure out the generic way of doing this
+ if (Constants.CODE_DELETE == event.mKeyCode) {
+ final int length = mCombinedText.length();
+ if (length > 0) {
+ final int lastCodePoint = mCombinedText.codePointBefore(length);
+ mCombinedText.delete(length - Character.charCount(lastCodePoint), length);
+ }
+ } else {
+ final CharSequence textToCommit = event.getTextToCommit();
+ if (!TextUtils.isEmpty(textToCommit)) {
+ mCombinedText.append(textToCommit);
+ }
+ }
}
mStateFeedback.clear();
for (int i = mCombiners.size() - 1; i >= 0; --i) {