[IL67] Externalize a call to the keyboard switcher

Bug: 8636060
Change-Id: Ib13a54854e30afb79217a0a1f2aeca50a95ba155
This commit is contained in:
Jean Chalard 2013-12-27 19:06:45 +09:00
parent ab80b41a0d
commit eb6d41a525
3 changed files with 22 additions and 11 deletions

View file

@ -216,8 +216,9 @@ public final class Constants {
public static final int CODE_LANGUAGE_SWITCH = -10;
public static final int CODE_EMOJI = -11;
public static final int CODE_SHIFT_ENTER = -12;
public static final int CODE_SYMBOL_SHIFT = -13;
// Code value representing the code is not specified.
public static final int CODE_UNSPECIFIED = -13;
public static final int CODE_UNSPECIFIED = -14;
public static boolean isLetterCode(final int code) {
return code >= CODE_SPACE;

View file

@ -1260,7 +1260,20 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen
// this transformation, it should be done already before calling onCodeInput.
final int keyX = mainKeyboardView.getKeyX(x);
final int keyY = mainKeyboardView.getKeyY(y);
mInputLogic.onCodeInput(codePoint, keyX, keyY, mHandler, mKeyboardSwitcher,
final int codeToSend;
if (Constants.CODE_SHIFT == codePoint) {
// TODO: Instead of checking for alphabetic keyboard here, separate keycodes for
// alphabetic shift and shift while in symbol layout.
final Keyboard currentKeyboard = mKeyboardSwitcher.getKeyboard();
if (null != currentKeyboard && currentKeyboard.mId.isAlphabetKeyboard()) {
codeToSend = codePoint;
} else {
codeToSend = Constants.CODE_SYMBOL_SHIFT;
}
} else {
codeToSend = codePoint;
}
mInputLogic.onCodeInput(codeToSend, keyX, keyY, mHandler, mKeyboardSwitcher,
mSubtypeSwitcher);
mKeyboardSwitcher.onCodeInput(codePoint);
}

View file

@ -230,20 +230,17 @@ public final class InputLogic {
LatinImeLogger.logOnDelete(x, y);
break;
case Constants.CODE_SHIFT:
// Note: Calling back to the keyboard on Shift key is handled in
// {@link #onPressKey(int,int,boolean)} and {@link #onReleaseKey(int,boolean)}.
final Keyboard currentKeyboard = keyboardSwitcher.getKeyboard();
if (null != currentKeyboard && currentKeyboard.mId.isAlphabetKeyboard()) {
// TODO: Instead of checking for alphabetic keyboard here, separate keycodes for
// alphabetic shift and shift while in symbol layout.
performRecapitalization(settingsValues);
keyboardSwitcher.updateShiftState();
}
performRecapitalization(settingsValues);
keyboardSwitcher.updateShiftState();
break;
case Constants.CODE_CAPSLOCK:
// Note: Changing keyboard to shift lock state is handled in
// {@link KeyboardSwitcher#onCodeInput(int)}.
break;
case Constants.CODE_SYMBOL_SHIFT:
// Note: Calling back to the keyboard on the symbol Shift key is handled in
// {@link #onPressKey(int,int,boolean)} and {@link #onReleaseKey(int,boolean)}.
break;
case Constants.CODE_SWITCH_ALPHA_SYMBOL:
// Note: Calling back to the keyboard on symbol key is handled in
// {@link #onPressKey(int,int,boolean)} and {@link #onReleaseKey(int,boolean)}.