Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 12a4e08a authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Handling multi-character uppercase key input

Change-Id: Ie0820a2627e18109036d5f6f286d5a366c9b9f87
parent eb680367
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -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) {