diff options
author | 2011-06-21 02:40:42 -0700 | |
---|---|---|
committer | 2011-06-21 02:40:42 -0700 | |
commit | 839fb35f2bf2dfceaeff64524d51877c30023c4b (patch) | |
tree | 6a8be0a92da3a375d141ae43f9c69ed3b0df8f74 /java/src/com/android/inputmethod/latin/LatinIME.java | |
parent | 8a916d26c3fdfa3cfd2b5b2afdf810a73469bb58 (diff) | |
parent | 35f20916e5348d7fa485ba8eb0a5cf2e67f4f354 (diff) | |
download | latinime-839fb35f2bf2dfceaeff64524d51877c30023c4b.tar.gz latinime-839fb35f2bf2dfceaeff64524d51877c30023c4b.tar.xz latinime-839fb35f2bf2dfceaeff64524d51877c30023c4b.zip |
Merge "Support Turkish keyboard"
Diffstat (limited to 'java/src/com/android/inputmethod/latin/LatinIME.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index dd97db34e..1645b1678 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -1274,7 +1274,7 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar clearSuggestions(); } } - KeyboardSwitcher switcher = mKeyboardSwitcher; + final KeyboardSwitcher switcher = mKeyboardSwitcher; if (switcher.isShiftedOrShiftLocked()) { if (keyCodes == null || keyCodes[0] < Character.MIN_CODE_POINT || keyCodes[0] > Character.MAX_CODE_POINT) { @@ -1282,13 +1282,15 @@ public class LatinIME extends InputMethodServiceCompatWrapper implements Keyboar } code = keyCodes[0]; if (switcher.isAlphabetMode() && Character.isLowerCase(code)) { - int upperCaseCode = Character.toUpperCase(code); - if (upperCaseCode != code) { - code = upperCaseCode; + // In some locales, such as Turkish, Character.toUpperCase() may return a wrong + // character because it doesn't take care of locale. + final String upperCaseString = new String(new int[] {code}, 0, 1) + .toUpperCase(mSubtypeSwitcher.getInputLocale()); + if (upperCaseString.codePointCount(0, upperCaseString.length()) == 1) { + code = upperCaseString.codePointAt(0); } else { // Some keys, such as [eszett], have upper case as multi-characters. - String upperCase = new String(new int[] {code}, 0, 1).toUpperCase(); - onTextInput(upperCase); + onTextInput(upperCaseString); return; } } |