diff options
author | 2009-07-23 12:17:48 -0700 | |
---|---|---|
committer | 2009-08-13 17:26:55 -0700 | |
commit | 4a7ff90d513f8b6cbf39688c08be0828a57e311b (patch) | |
tree | 698cfbfe1a48e38aedad4953a3dbd03705403c9d /src/com/android/inputmethod/latin/WordComposer.java | |
parent | b19668cfc17ad30afcc3c8c0407d47238ce1a90d (diff) | |
download | latinime-4a7ff90d513f8b6cbf39688c08be0828a57e311b.tar.gz latinime-4a7ff90d513f8b6cbf39688c08be0828a57e311b.tar.xz latinime-4a7ff90d513f8b6cbf39688c08be0828a57e311b.zip |
Less aggressive CAPS mode prediction.
Don't auto-correct if the typed word has more than one uppercase letter.
Also, delay applying shift state to the keyboard so that fast backspaces are not interrupted by the
time taken to render the shifted/unshifted keyboard.
Show ellipsis on the ?123 key
Diffstat (limited to 'src/com/android/inputmethod/latin/WordComposer.java')
-rw-r--r-- | src/com/android/inputmethod/latin/WordComposer.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/com/android/inputmethod/latin/WordComposer.java b/src/com/android/inputmethod/latin/WordComposer.java index c950a7f18..6679fca76 100644 --- a/src/com/android/inputmethod/latin/WordComposer.java +++ b/src/com/android/inputmethod/latin/WordComposer.java @@ -34,6 +34,8 @@ public class WordComposer { private String mPreferredWord; private StringBuilder mTypedWord; + + private int mCapsCount; /** * Whether the user chose to capitalize the word. @@ -53,6 +55,7 @@ public class WordComposer { mIsCapitalized = false; mPreferredWord = null; mTypedWord.setLength(0); + mCapsCount = 0; } /** @@ -80,6 +83,7 @@ public class WordComposer { public void add(int primaryCode, int[] codes) { mTypedWord.append((char) primaryCode); mCodes.add(codes); + if (Character.isUpperCase((char) primaryCode)) mCapsCount++; } /** @@ -87,7 +91,10 @@ public class WordComposer { */ public void deleteLast() { mCodes.remove(mCodes.size() - 1); - mTypedWord.deleteCharAt(mTypedWord.length() - 1); + final int lastPos = mTypedWord.length() - 1; + char last = mTypedWord.charAt(lastPos); + mTypedWord.deleteCharAt(lastPos); + if (Character.isUpperCase(last)) mCapsCount--; } /** @@ -138,4 +145,11 @@ public class WordComposer { public CharSequence getPreferredWord() { return mPreferredWord != null ? mPreferredWord : getTypedWord(); } + + /** + * Returns true if more than one character is upper case, otherwise returns false. + */ + public boolean isMostlyCaps() { + return mCapsCount > 1; + } } |