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

Commit 2d603fff authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Remove EditorInfo from KeyboardId

Change-Id: I70919ff30622afa1d8c29ca45589fa617f2c1f0e
parent 014b755f
Loading
Loading
Loading
Loading
+45 −32
Original line number Diff line number Diff line
@@ -63,46 +63,39 @@ public class KeyboardId {
    // TODO: Remove this field.
    private final int mXmlId;
    public final int mElementState;
    public final boolean mNavigateAction;
    public final boolean mPasswordInput;
    private final int mInputType;
    private final int mImeOptions;
    private final boolean mSettingsKeyEnabled;
    public final boolean mClobberSettingsKey;
    public final boolean mShortcutKeyEnabled;
    public final boolean mHasShortcutKey;
    public final int mImeAction;

    // TODO: Remove this field.
    private final EditorInfo mEditorInfo;

    private final int mHashCode;

    public KeyboardId(int xmlId, int elementState, Locale locale, int orientation, int width,
            int mode, EditorInfo editorInfo, boolean settingsKeyEnabled,
            boolean clobberSettingsKey, boolean shortcutKeyEnabled, boolean hasShortcutKey) {
        final int inputType = (editorInfo != null) ? editorInfo.inputType : 0;
        final int imeOptions = (editorInfo != null) ? editorInfo.imeOptions : 0;
        this.mElementState = elementState;
        this(xmlId, elementState, locale, orientation, width, mode,
                (editorInfo != null ? editorInfo.inputType : 0),
                (editorInfo != null ? editorInfo.imeOptions : 0),
                settingsKeyEnabled, clobberSettingsKey, shortcutKeyEnabled, hasShortcutKey);
    }

    private KeyboardId(int xmlId, int elementState, Locale locale, int orientation, int width,
            int mode, int inputType, int imeOptions, boolean settingsKeyEnabled,
            boolean clobberSettingsKey, boolean shortcutKeyEnabled, boolean hasShortcutKey) {
        this.mLocale = locale;
        this.mOrientation = orientation;
        this.mWidth = width;
        this.mMode = mode;
        this.mXmlId = xmlId;
        // Note: Turn off checking navigation flag to show TAB key for now.
        this.mNavigateAction = InputTypeCompatUtils.isWebInputType(inputType);
//                || EditorInfoCompatUtils.hasFlagNavigateNext(imeOptions)
//                || EditorInfoCompatUtils.hasFlagNavigatePrevious(imeOptions);
        this.mPasswordInput = InputTypeCompatUtils.isPasswordInputType(inputType)
                || InputTypeCompatUtils.isVisiblePasswordInputType(inputType);
        this.mElementState = elementState;
        this.mInputType = inputType;
        this.mImeOptions = imeOptions;
        this.mSettingsKeyEnabled = settingsKeyEnabled;
        this.mClobberSettingsKey = clobberSettingsKey;
        this.mShortcutKeyEnabled = shortcutKeyEnabled;
        this.mHasShortcutKey = hasShortcutKey;
        // We are interested only in {@link EditorInfo#IME_MASK_ACTION} enum value and
        // {@link EditorInfo#IME_FLAG_NO_ENTER_ACTION}.
        this.mImeAction = imeOptions & (
                EditorInfo.IME_MASK_ACTION | EditorInfo.IME_FLAG_NO_ENTER_ACTION);

        this.mEditorInfo = editorInfo;

        this.mHashCode = hashCode(this);
    }
@@ -114,14 +107,14 @@ public class KeyboardId {
                id.mMode,
                id.mWidth,
                id.mXmlId,
                id.mNavigateAction,
                id.mPasswordInput,
                id.navigateAction(),
                id.passwordInput(),
                id.mSettingsKeyEnabled,
                id.mClobberSettingsKey,
                id.mShortcutKeyEnabled,
                id.mHasShortcutKey,
                id.mImeAction,
                id.mLocale,
                id.imeAction(),
                id.mLocale
        });
    }

@@ -133,19 +126,19 @@ public class KeyboardId {
                && other.mMode == this.mMode
                && other.mWidth == this.mWidth
                && other.mXmlId == this.mXmlId
                && other.mNavigateAction == this.mNavigateAction
                && other.mPasswordInput == this.mPasswordInput
                && other.navigateAction() == this.navigateAction()
                && other.passwordInput() == this.passwordInput()
                && other.mSettingsKeyEnabled == this.mSettingsKeyEnabled
                && other.mClobberSettingsKey == this.mClobberSettingsKey
                && other.mShortcutKeyEnabled == this.mShortcutKeyEnabled
                && other.mHasShortcutKey == this.mHasShortcutKey
                && other.mImeAction == this.mImeAction
                && other.imeAction() == this.imeAction()
                && other.mLocale.equals(this.mLocale);
    }

    public KeyboardId cloneWithNewXml(int xmlId) {
        return new KeyboardId(xmlId, mElementState, mLocale, mOrientation, mWidth, mMode,
                mEditorInfo, false, false, false, false);
                mInputType, mImeOptions, false, false, false, false);
    }

    // Remove this method.
@@ -169,6 +162,26 @@ public class KeyboardId {
        return mElementState == ELEMENT_PHONE_SHIFT;
    }

    public boolean navigateAction() {
        // Note: Turn off checking navigation flag to show TAB key for now.
        boolean navigateAction = InputTypeCompatUtils.isWebInputType(mInputType);
//                || EditorInfoCompatUtils.hasFlagNavigateNext(mImeOptions)
//                || EditorInfoCompatUtils.hasFlagNavigatePrevious(mImeOptions);
        return navigateAction;
    }

    public boolean passwordInput() {
        return InputTypeCompatUtils.isPasswordInputType(mInputType)
                || InputTypeCompatUtils.isVisiblePasswordInputType(mInputType);
    }

    public int imeAction() {
        // We are interested only in {@link EditorInfo#IME_MASK_ACTION} enum value and
        // {@link EditorInfo#IME_FLAG_NO_ENTER_ACTION}.
        return mImeOptions & (
                EditorInfo.IME_MASK_ACTION | EditorInfo.IME_FLAG_NO_ENTER_ACTION);
    }

    public boolean hasSettingsKey() {
        return mSettingsKeyEnabled && !mClobberSettingsKey;
    }
@@ -205,11 +218,11 @@ public class KeyboardId {
                mLocale,
                (mOrientation == 1 ? "port" : "land"), mWidth,
                modeName(mMode),
                EditorInfoCompatUtils.imeOptionsName(mImeAction),
                EditorInfoCompatUtils.imeOptionsName(imeAction()),
                f2KeyModeName(f2KeyMode()),
                (mClobberSettingsKey ? " clobberSettingsKey" : ""),
                (mNavigateAction ? " navigateAction" : ""),
                (mPasswordInput ? " passwordInput" : ""),
                (navigateAction() ? " navigateAction" : ""),
                (passwordInput() ? " passwordInput" : ""),
                (hasSettingsKey() ? " hasSettingsKey" : ""),
                (mShortcutKeyEnabled ? " shortcutKeyEnabled" : ""),
                (mHasShortcutKey ? " hasShortcutKey" : "")
+3 −3
Original line number Diff line number Diff line
@@ -609,9 +609,9 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
            final boolean modeMatched = matchTypedValue(a,
                    R.styleable.Keyboard_Case_mode, id.mMode, KeyboardId.modeName(id.mMode));
            final boolean navigateActionMatched = matchBoolean(a,
                    R.styleable.Keyboard_Case_navigateAction, id.mNavigateAction);
                    R.styleable.Keyboard_Case_navigateAction, id.navigateAction());
            final boolean passwordInputMatched = matchBoolean(a,
                    R.styleable.Keyboard_Case_passwordInput, id.mPasswordInput);
                    R.styleable.Keyboard_Case_passwordInput, id.passwordInput());
            final boolean hasSettingsKeyMatched = matchBoolean(a,
                    R.styleable.Keyboard_Case_hasSettingsKey, id.hasSettingsKey());
            final boolean f2KeyModeMatched = matchInteger(a,
@@ -627,7 +627,7 @@ public class KeyboardBuilder<KP extends KeyboardParams> {
            // {@link android.view.inputmethod.EditorInfo#IME_FLAG_NO_ENTER_ACTION}. So matching
            // this attribute with id.mImeOptions as integer value is enough for our purpose.
            final boolean imeActionMatched = matchInteger(a,
                    R.styleable.Keyboard_Case_imeAction, id.mImeAction);
                    R.styleable.Keyboard_Case_imeAction, id.imeAction());
            final boolean localeCodeMatched = matchString(a,
                    R.styleable.Keyboard_Case_localeCode, id.mLocale.toString());
            final boolean languageCodeMatched = matchString(a,
+1 −2
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import android.content.res.Configuration;
import android.test.AndroidTestCase;
import android.text.TextUtils;
import android.util.DisplayMetrics;
import android.view.inputmethod.EditorInfo;

import com.android.inputmethod.keyboard.KeyboardId;

@@ -52,7 +51,7 @@ public class SuggestTestsBase extends AndroidTestCase {
        }
        return new KeyboardId(com.android.inputmethod.latin.R.xml.kbd_qwerty,
                KeyboardId.ELEMENT_ALPHABET, locale, orientation, width, KeyboardId.MODE_TEXT,
                new EditorInfo(), false, false, false, false);
                null, false, false, false, false);
    }

    protected InputStream openTestRawResource(int resIdInTest) {