diff options
author | 2010-07-01 05:11:23 +0900 | |
---|---|---|
committer | 2010-07-01 05:11:23 +0900 | |
commit | 9d2e059f835e7d845c3bbbe473f388b878e44fd2 (patch) | |
tree | 8b4d0251ccc0431770a28ed4871572cdabb9faeb /java/src/com/android/inputmethod/latin/TextEntryState.java | |
parent | 67607ea8b12a149f95a5d74b94ff550eac4bd0ff (diff) | |
parent | 57691a35743e3705abe60db4902f9ad3c0e722d8 (diff) | |
download | latinime-9d2e059f835e7d845c3bbbe473f388b878e44fd2.tar.gz latinime-9d2e059f835e7d845c3bbbe473f388b878e44fd2.tar.xz latinime-9d2e059f835e7d845c3bbbe473f388b878e44fd2.zip |
Merge commit 'goog/master'
Conflicts:
java/src/com/android/inputmethod/latin/LatinIME.java
Diffstat (limited to 'java/src/com/android/inputmethod/latin/TextEntryState.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/TextEntryState.java | 26 |
1 files changed, 21 insertions, 5 deletions
diff --git a/java/src/com/android/inputmethod/latin/TextEntryState.java b/java/src/com/android/inputmethod/latin/TextEntryState.java index e2f949e4b..1a3bb877a 100644 --- a/java/src/com/android/inputmethod/latin/TextEntryState.java +++ b/java/src/com/android/inputmethod/latin/TextEntryState.java @@ -69,9 +69,11 @@ public class TextEntryState { public static final int STATE_SPACE_AFTER_ACCEPTED = 7; public static final int STATE_SPACE_AFTER_PICKED = 8; public static final int STATE_UNDO_COMMIT = 9; - + public static final int STATE_CORRECTING = 10; + public static final int STATE_PICKED_CORRECTION = 11; + private static int sState = STATE_UNKNOWN; - + private static FileOutputStream sKeyLocationFile; private static FileOutputStream sUserActionFile; @@ -153,12 +155,17 @@ public class TextEntryState { public static void acceptedSuggestion(CharSequence typedWord, CharSequence actualWord) { sManualSuggestCount++; + int oldState = sState; if (typedWord.equals(actualWord)) { acceptedTyped(typedWord); } - sState = STATE_PICKED_SUGGESTION; + sState = oldState == STATE_CORRECTING ? STATE_PICKED_CORRECTION : STATE_PICKED_SUGGESTION; } - + + public static void selectedForCorrection() { + sState = STATE_CORRECTING; + } + public static void typedCharacter(char c, boolean isSeparator) { boolean isSpace = c == ' '; switch (sState) { @@ -180,6 +187,7 @@ public class TextEntryState { } break; case STATE_PICKED_SUGGESTION: + case STATE_PICKED_CORRECTION: if (isSpace) { sState = STATE_SPACE_AFTER_PICKED; } else if (isSeparator) { @@ -206,6 +214,10 @@ public class TextEntryState { } else { sState = STATE_IN_WORD; } + break; + case STATE_CORRECTING: + sState = STATE_START; + break; } } @@ -227,7 +239,11 @@ public class TextEntryState { public static int getState() { return sState; } - + + public static boolean isCorrecting() { + return sState == STATE_CORRECTING || sState == STATE_PICKED_CORRECTION; + } + public static void keyPressedAt(Key key, int x, int y) { if (LOGGING && sKeyLocationFile != null && key.codes[0] >= 32) { String out = |