Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 22959faa authored by Jean Chalard's avatar Jean Chalard Committed by Android (Google) Code Review
Browse files

Merge "Stop relying on the soft keyboard to get the editor action."

parents 5e45fbf0 d818f1e3
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -209,7 +209,7 @@ public final class KeyCodeDescriptionMapper {
    private String getDescriptionForActionKey(final Context context, final Keyboard keyboard,
            final Key key) {
        final KeyboardId keyboardId = keyboard.mId;
        final int actionId = keyboardId.imeActionId();
        final int actionId = keyboardId.imeAction();
        final int resId;

        // Always use the label, if available.
+1 −6
Original line number Diff line number Diff line
@@ -172,12 +172,7 @@ public final class KeyboardId {
    }

    public int imeAction() {
        return InputTypeUtils.getActionIdFromEditorInfo(mEditorInfo);
    }

    public int imeActionId() {
        final int actionId = imeAction();
        return actionId == InputTypeUtils.IME_ACTION_CUSTOM_LABEL ? mEditorInfo.actionId : actionId;
        return InputTypeUtils.getImeOptionsActionIdFromEditorInfo(mEditorInfo);
    }

    @Override
+6 −1
Original line number Diff line number Diff line
@@ -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;
    }
}
+5 −8
Original line number Diff line number Diff line
@@ -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);