[IL67] Externalize a call to the keyboard switcher

Bug: 8636060
Change-Id: Ib13a54854e30afb79217a0a1f2aeca50a95ba155
main
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_LANGUAGE_SWITCH = -10;
public static final int CODE_EMOJI = -11; public static final int CODE_EMOJI = -11;
public static final int CODE_SHIFT_ENTER = -12; public static final int CODE_SHIFT_ENTER = -12;
public static final int CODE_SYMBOL_SHIFT = -13;
// Code value representing the code is not specified. // 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) { public static boolean isLetterCode(final int code) {
return code >= CODE_SPACE; 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. // this transformation, it should be done already before calling onCodeInput.
final int keyX = mainKeyboardView.getKeyX(x); final int keyX = mainKeyboardView.getKeyX(x);
final int keyY = mainKeyboardView.getKeyY(y); 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); mSubtypeSwitcher);
mKeyboardSwitcher.onCodeInput(codePoint); mKeyboardSwitcher.onCodeInput(codePoint);
} }

View File

@ -230,20 +230,17 @@ public final class InputLogic {
LatinImeLogger.logOnDelete(x, y); LatinImeLogger.logOnDelete(x, y);
break; break;
case Constants.CODE_SHIFT: case Constants.CODE_SHIFT:
// Note: Calling back to the keyboard on Shift key is handled in performRecapitalization(settingsValues);
// {@link #onPressKey(int,int,boolean)} and {@link #onReleaseKey(int,boolean)}. keyboardSwitcher.updateShiftState();
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();
}
break; break;
case Constants.CODE_CAPSLOCK: case Constants.CODE_CAPSLOCK:
// Note: Changing keyboard to shift lock state is handled in // Note: Changing keyboard to shift lock state is handled in
// {@link KeyboardSwitcher#onCodeInput(int)}. // {@link KeyboardSwitcher#onCodeInput(int)}.
break; 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: case Constants.CODE_SWITCH_ALPHA_SYMBOL:
// Note: Calling back to the keyboard on symbol key is handled in // Note: Calling back to the keyboard on symbol key is handled in
// {@link #onPressKey(int,int,boolean)} and {@link #onReleaseKey(int,boolean)}. // {@link #onPressKey(int,int,boolean)} and {@link #onReleaseKey(int,boolean)}.