diff options
Diffstat (limited to 'java/src/com/android/inputmethod/latin')
-rw-r--r-- | java/src/com/android/inputmethod/latin/InputTypeUtils.java | 7 | ||||
-rw-r--r-- | java/src/com/android/inputmethod/latin/LatinIME.java | 13 |
2 files changed, 11 insertions, 9 deletions
diff --git a/java/src/com/android/inputmethod/latin/InputTypeUtils.java b/java/src/com/android/inputmethod/latin/InputTypeUtils.java index 55414b809..e2eacb3f0 100644 --- a/java/src/com/android/inputmethod/latin/InputTypeUtils.java +++ b/java/src/com/android/inputmethod/latin/InputTypeUtils.java @@ -105,7 +105,7 @@ public final class InputTypeUtils implements InputType { return true; } - public static int getActionIdFromEditorInfo(final EditorInfo editorInfo) { + public static int getImeOptionsActionIdFromEditorInfo(final EditorInfo editorInfo) { final int actionId = editorInfo.imeOptions & EditorInfo.IME_MASK_ACTION; if ((editorInfo.imeOptions & EditorInfo.IME_FLAG_NO_ENTER_ACTION) != 0) { return EditorInfo.IME_ACTION_NONE; @@ -115,4 +115,9 @@ public final class InputTypeUtils implements InputType { return actionId; } } + + public static int getConcreteActionIdFromEditorInfo(final EditorInfo editorInfo) { + final int actionId = getImeOptionsActionIdFromEditorInfo(editorInfo); + return actionId == InputTypeUtils.IME_ACTION_CUSTOM_LABEL ? editorInfo.actionId : actionId; + } } diff --git a/java/src/com/android/inputmethod/latin/LatinIME.java b/java/src/com/android/inputmethod/latin/LatinIME.java index 8913b1543..819625225 100644 --- a/java/src/com/android/inputmethod/latin/LatinIME.java +++ b/java/src/com/android/inputmethod/latin/LatinIME.java @@ -166,6 +166,7 @@ public final class LatinIME extends InputMethodService implements KeyboardAction private boolean mExpectingUpdateSelection; private int mDeleteCount; private long mLastKeyTime; + private int mActionId; // Member variables for remembering the current device orientation. private int mDisplayOrientation; @@ -754,6 +755,7 @@ public final class LatinIME extends InputMethodService implements KeyboardAction mLastSelectionStart = editorInfo.initialSelStart; mLastSelectionEnd = editorInfo.initialSelEnd; + mActionId = InputTypeUtils.getConcreteActionIdFromEditorInfo(editorInfo); mHandler.cancelUpdateSuggestionStrip(); mHandler.cancelDoubleSpacePeriodTimer(); @@ -1272,10 +1274,6 @@ public final class LatinIME extends InputMethodService implements KeyboardAction return mOptionsDialog != null && mOptionsDialog.isShowing(); } - private static int getActionId(final Keyboard keyboard) { - return keyboard != null ? keyboard.mId.imeActionId() : EditorInfo.IME_ACTION_NONE; - } - private void performEditorAction(final int actionId) { mConnection.performEditorAction(actionId); } @@ -1384,10 +1382,9 @@ public final class LatinIME extends InputMethodService implements KeyboardAction } break; case Constants.CODE_ACTION_ENTER: - final int actionId = getActionId(switcher.getKeyboard()); - if (EditorInfo.IME_ACTION_NONE != actionId - && EditorInfo.IME_ACTION_UNSPECIFIED != actionId) { - performEditorAction(actionId); + if (EditorInfo.IME_ACTION_NONE != mActionId + && EditorInfo.IME_ACTION_UNSPECIFIED != mActionId) { + performEditorAction(mActionId); break; } didAutoCorrect = handleNonSpecialCharacter(Constants.CODE_ENTER, x, y, spaceState); |