aboutsummaryrefslogtreecommitdiffstats
path: root/java/src
diff options
context:
space:
mode:
authorTadashi G. Takaoka <takaoka@google.com>2010-09-14 09:43:59 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2010-09-14 09:43:59 -0700
commitb36a653ca65f3c26ba070a73b9d43beb57f620ee (patch)
treeb9197a93cd16196ca8ef596ba6a1ff7ba5b5cb05 /java/src
parentb2835ef2e506b7d1b3db1c810b7dae349d2461d2 (diff)
parent12a4e08a6440c95f29dc04efe83515a4ed045487 (diff)
downloadlatinime-b36a653ca65f3c26ba070a73b9d43beb57f620ee.tar.gz
latinime-b36a653ca65f3c26ba070a73b9d43beb57f620ee.tar.xz
latinime-b36a653ca65f3c26ba070a73b9d43beb57f620ee.zip
am 12a4e08a: Handling multi-character uppercase key input
Merge commit '12a4e08a6440c95f29dc04efe83515a4ed045487' into gingerbread-plus-aosp * commit '12a4e08a6440c95f29dc04efe83515a4ed045487': Handling multi-character uppercase key input
Diffstat (limited to 'java/src')
-rw-r--r--java/src/com/android/inputmethod/latin/LatinIME.java13
1 files changed, 10 insertions, 3 deletions
diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java
index 50fc4840d..4e8723c76 100644
--- a/java/src/com/android/inputmethod/latin/LatinIME.java
+++ b/java/src/com/android/inputmethod/latin/LatinIME.java
@@ -1348,14 +1348,21 @@ public class LatinIME extends InputMethodService
}
}
if (mKeyboardSwitcher.getInputView().isShifted()) {
- // TODO: This doesn't work with [beta], need to fix it in the next release.
if (keyCodes == null || keyCodes[0] < Character.MIN_CODE_POINT
|| keyCodes[0] > Character.MAX_CODE_POINT) {
return;
}
primaryCode = keyCodes[0];
- if (mKeyboardSwitcher.isAlphabetMode()) {
- primaryCode = Character.toUpperCase(primaryCode);
+ if (mKeyboardSwitcher.isAlphabetMode() && Character.isLowerCase(primaryCode)) {
+ int upperCaseCode = Character.toUpperCase(primaryCode);
+ if (upperCaseCode != primaryCode) {
+ primaryCode = upperCaseCode;
+ } else {
+ // Some keys, such as [eszett], have upper case as multi-characters.
+ String upperCase = new String(new int[] {primaryCode}, 0, 1).toUpperCase();
+ onText(upperCase);
+ return;
+ }
}
}
if (mPredicting) {