am 12a4e08a: Handling multi-character uppercase key input

Merge commit '12a4e08a6440c95f29dc04efe83515a4ed045487' into gingerbread-plus-aosp

* commit '12a4e08a6440c95f29dc04efe83515a4ed045487':
  Handling multi-character uppercase key input
main
Tadashi G. Takaoka 2010-09-14 09:43:59 -07:00 committed by Android Git Automerger
commit b36a653ca6
1 changed files with 10 additions and 3 deletions

View File

@ -1348,14 +1348,21 @@ public class LatinIME extends InputMethodService
} }
} }
if (mKeyboardSwitcher.getInputView().isShifted()) { 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 if (keyCodes == null || keyCodes[0] < Character.MIN_CODE_POINT
|| keyCodes[0] > Character.MAX_CODE_POINT) { || keyCodes[0] > Character.MAX_CODE_POINT) {
return; return;
} }
primaryCode = keyCodes[0]; primaryCode = keyCodes[0];
if (mKeyboardSwitcher.isAlphabetMode()) { if (mKeyboardSwitcher.isAlphabetMode() && Character.isLowerCase(primaryCode)) {
primaryCode = Character.toUpperCase(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) { if (mPredicting) {