Fix emoji state

Bug: 10919260
Change-Id: I85e897b2de10f147bba40dd2147e041e26f5b8ad
main
Satoshi Kataoka 2013-09-25 11:55:12 +09:00
parent 431158c939
commit 9c3b2dbe34
1 changed files with 8 additions and 3 deletions

View File

@ -585,7 +585,7 @@ public final class KeyboardState {
} }
} }
private static boolean isSpaceCharacter(final int c) { private static boolean isSpaceOrEnter(final int c) {
return c == Constants.CODE_SPACE || c == Constants.CODE_ENTER; return c == Constants.CODE_SPACE || c == Constants.CODE_ENTER;
} }
@ -614,7 +614,12 @@ public final class KeyboardState {
} }
break; break;
case SWITCH_STATE_SYMBOL_BEGIN: case SWITCH_STATE_SYMBOL_BEGIN:
if (!isSpaceCharacter(code) && (Constants.isLetterCode(code) if (mIsEmojiMode) {
// When in the Emoji keyboard, we don't want to switch back to the main layout even
// after the user hits an emoji letter followed by an enter or a space.
break;
}
if (!isSpaceOrEnter(code) && (Constants.isLetterCode(code)
|| code == Constants.CODE_OUTPUT_TEXT)) { || code == Constants.CODE_OUTPUT_TEXT)) {
mSwitchState = SWITCH_STATE_SYMBOL; mSwitchState = SWITCH_STATE_SYMBOL;
} }
@ -622,7 +627,7 @@ public final class KeyboardState {
case SWITCH_STATE_SYMBOL: case SWITCH_STATE_SYMBOL:
// Switch back to alpha keyboard mode if user types one or more non-space/enter // Switch back to alpha keyboard mode if user types one or more non-space/enter
// characters followed by a space/enter. // characters followed by a space/enter.
if (isSpaceCharacter(code)) { if (isSpaceOrEnter(code)) {
toggleAlphabetAndSymbols(); toggleAlphabetAndSymbols();
mPrevSymbolsKeyboardWasShifted = false; mPrevSymbolsKeyboardWasShifted = false;
} }