From 969c06072db7f530806a4d0581ce588f01d09dc2 Mon Sep 17 00:00:00 2001 From: Jean Chalard Date: Wed, 15 Jan 2014 11:27:27 +0900 Subject: [PATCH] [IL75] Move the SubtypeSwitcher out of InputLogic. Bug: 8636060 Change-Id: I2a5da27e73cf378e55bd80ab2054c1ba8b13f6ec --- java/src/com/android/inputmethod/latin/LatinIME.java | 7 +++++-- .../android/inputmethod/latin/inputlogic/InputLogic.java | 9 ++++----- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index f95d77d3d..5d284cd51 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -1285,8 +1285,11 @@ public class LatinIME extends InputMethodService implements KeyboardActionListen } else { codeToSend = codePoint; } - mInputLogic.onCodeInput(codeToSend, keyX, keyY, mHandler, mKeyboardSwitcher, - mSubtypeSwitcher); + if (Constants.CODE_SHORTCUT == codePoint) { + mSubtypeSwitcher.switchToShortcutIME(this); + // Still call the *#onCodeInput methods for readability. + } + mInputLogic.onCodeInput(codeToSend, keyX, keyY, mHandler, mKeyboardSwitcher); mKeyboardSwitcher.onCodeInput(codePoint); } diff --git a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java index 6e9bdc34a..7a6ac605f 100644 --- a/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java +++ b/java/src/com/android/inputmethod/latin/inputlogic/InputLogic.java @@ -36,7 +36,6 @@ import com.android.inputmethod.latin.LastComposedWord; import com.android.inputmethod.latin.LatinIME; import com.android.inputmethod.latin.LatinImeLogger; import com.android.inputmethod.latin.RichInputConnection; -import com.android.inputmethod.latin.SubtypeSwitcher; import com.android.inputmethod.latin.Suggest; import com.android.inputmethod.latin.Suggest.OnGetSuggestedWordsCallback; import com.android.inputmethod.latin.SuggestedWords; @@ -192,9 +191,8 @@ public final class InputLogic { * @param y the y-coordinate where the user pressed the key, or NOT_A_COORDINATE. */ public void onCodeInput(final int code, final int x, final int y, - // TODO: remove these three arguments - final LatinIME.UIHandler handler, - final KeyboardSwitcher keyboardSwitcher, final SubtypeSwitcher subtypeSwitcher) { + // TODO: remove these two arguments + final LatinIME.UIHandler handler, final KeyboardSwitcher keyboardSwitcher) { if (ProductionFlag.USES_DEVELOPMENT_ONLY_DIAGNOSTICS) { ResearchLogger.latinIME_onCodeInput(code, x, y); } @@ -247,7 +245,8 @@ public final class InputLogic { onSettingsKeyPressed(); break; case Constants.CODE_SHORTCUT: - subtypeSwitcher.switchToShortcutIME(mLatinIME); + // We need to switch to the shortcut IME. This is handled by LatinIME since the + // input logic has no business with IME switching. break; case Constants.CODE_ACTION_NEXT: performEditorAction(EditorInfo.IME_ACTION_NEXT);