aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/WordComposer.java
diff options
context:
space:
mode:
authorJean Chalard <jchalard@google.com>2014-03-25 22:47:05 +0900
committerJean Chalard <jchalard@google.com>2014-04-02 18:01:00 +0900
commit3e160bbe6b91c2d50a410ebd28e10f3e58b2c73a (patch)
treea0f0ecd497d6cdc7c5d4220ddf7bbdeea0e0ad58 /java/src/com/android/inputmethod/latin/WordComposer.java
parentdfaeb125eb27172e4d38e1e5a87a13a3320c1e82 (diff)
downloadlatinime-3e160bbe6b91c2d50a410ebd28e10f3e58b2c73a.tar.gz
latinime-3e160bbe6b91c2d50a410ebd28e10f3e58b2c73a.tar.xz
latinime-3e160bbe6b91c2d50a410ebd28e10f3e58b2c73a.zip
[CB21] More refactoring
Bug: 13406701 Change-Id: I96e0a7fa2d9f4dfd8c355da4effc116bbd0f7f18
Diffstat (limited to 'java/src/com/android/inputmethod/latin/WordComposer.java')
-rw-r--r--java/src/com/android/inputmethod/latin/WordComposer.java37
1 files changed, 20 insertions, 17 deletions
diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java
index 3f9d57e42..87cf64461 100644
--- a/java/src/com/android/inputmethod/latin/WordComposer.java
+++ b/java/src/com/android/inputmethod/latin/WordComposer.java
@@ -189,11 +189,6 @@ public final class WordComposer {
newIndex, primaryCode, mIsFirstCharCapitalized);
if (Character.isUpperCase(primaryCode)) mCapsCount++;
if (Character.isDigit(primaryCode)) mDigitsCount++;
- if (Constants.CODE_SINGLE_QUOTE == primaryCode) {
- ++mTrailingSingleQuotesCount;
- } else {
- mTrailingSingleQuotesCount = 0;
- }
}
private void processEvent(final Event event) {
@@ -209,6 +204,26 @@ public final class WordComposer {
if (0 == mCodePointSize) {
mIsFirstCharCapitalized = false;
}
+ if (Constants.CODE_DELETE == event.mKeyCode) {
+ if (mTrailingSingleQuotesCount > 0) {
+ --mTrailingSingleQuotesCount;
+ } else {
+ // Delete, but we didn't end in a quote: must recompute mTrailingSingleQuotesCount
+ // We're only searching for single quotes, so no need to account for code points
+ for (int i = mTypedWordCache.length() - 1; i > 0; --i) {
+ if (Constants.CODE_SINGLE_QUOTE != mTypedWordCache.charAt(i)) {
+ break;
+ }
+ ++mTrailingSingleQuotesCount;
+ }
+ }
+ } else {
+ if (Constants.CODE_SINGLE_QUOTE == primaryCode) {
+ ++mTrailingSingleQuotesCount;
+ } else {
+ mTrailingSingleQuotesCount = 0;
+ }
+ }
mAutoCorrection = null;
}
@@ -217,18 +232,6 @@ public final class WordComposer {
*/
public void deleteLast(final Event event) {
processEvent(event);
- if (mTrailingSingleQuotesCount > 0) {
- --mTrailingSingleQuotesCount;
- } else {
- int i = mTypedWordCache.length();
- while (i > 0) {
- i = Character.offsetByCodePoints(mTypedWordCache, i, -1);
- if (Constants.CODE_SINGLE_QUOTE != Character.codePointAt(mTypedWordCache, i)) {
- break;
- }
- ++mTrailingSingleQuotesCount;
- }
- }
}
public void setCursorPositionWithinWord(final int posWithinWord) {