diff options
author | 2010-03-16 12:24:13 -0700 | |
---|---|---|
committer | 2010-03-16 12:24:13 -0700 | |
commit | c3413faf921cb986f5e421c2e98f54808c3d2cee (patch) | |
tree | 2d43b07eccb3096288bcb1ff15ae191dc19278f9 /java/src | |
parent | b1cb13292f482627e64ccb35be905b7f3154d4ff (diff) | |
parent | 231cacd08075e88a2bcdf25f025206de524e880b (diff) | |
download | latinime-c3413faf921cb986f5e421c2e98f54808c3d2cee.tar.gz latinime-c3413faf921cb986f5e421c2e98f54808c3d2cee.tar.xz latinime-c3413faf921cb986f5e421c2e98f54808c3d2cee.zip |
Merge "Fix occasional correction errors in suggesting obvious corrections."
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/inputmethod/latin/WordComposer.java | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/java/src/com/android/inputmethod/latin/WordComposer.java b/java/src/com/android/inputmethod/latin/WordComposer.java index e97cb24ba..8d8e35197 100644 --- a/java/src/com/android/inputmethod/latin/WordComposer.java +++ b/java/src/com/android/inputmethod/latin/WordComposer.java @@ -84,11 +84,27 @@ public class WordComposer { */ public void add(int primaryCode, int[] codes) { mTypedWord.append((char) primaryCode); + correctPrimaryJuxtapos(primaryCode, codes); mCodes.add(codes); if (Character.isUpperCase((char) primaryCode)) mCapsCount++; } /** + * Swaps the first and second values in the codes array if the primary code is not the first + * value in the array but the second. This happens when the preferred key is not the key that + * the user released the finger on. + * @param primaryCode the preferred character + * @param codes array of codes based on distance from touch point + */ + private void correctPrimaryJuxtapos(int primaryCode, int[] codes) { + if (codes.length < 2) return; + if (codes[0] > 0 && codes[1] > 0 && codes[0] != primaryCode && codes[1] == primaryCode) { + codes[1] = codes[0]; + codes[0] = primaryCode; + } + } + + /** * Delete the last keystroke as a result of hitting backspace. */ public void deleteLast() { |