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

Commit 5b0c124c authored by Tadashi G. Takaoka's avatar Tadashi G. Takaoka
Browse files

Remove Key.isStick, use backgroundType="stick" instead

Change-Id: I50e88c0870a3fe360b81f19163ca2f64ec38d8e8
parent a1b68eb1
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -199,9 +199,8 @@
            <enum name="normal" value="0" />
            <enum name="functional" value="1" />
            <enum name="action" value="2" />
            <enum name="sticky" value="3" />
        </attr>
        <!-- Whether this is a toggle key. -->
        <attr name="isSticky" format="boolean" />
        <!-- Whether long-pressing on this key will make it repeat. -->
        <attr name="isRepeatable" format="boolean" />
        <!-- The string of characters to output when this key is pressed. -->
+1 −2
Original line number Diff line number Diff line
@@ -44,8 +44,7 @@
        latin:code="@integer/key_shift"
        latin:keyIcon="iconShiftKey"
        latin:keyIconShifted="iconShiftedShiftKey"
        latin:backgroundType="functional"
        latin:isSticky="true" />
        latin:backgroundType="sticky" />
    <key-style
        latin:styleName="deleteKeyStyle"
        latin:code="@integer/key_delete"
+1 −2
Original line number Diff line number Diff line
@@ -26,8 +26,7 @@
        latin:code="@integer/key_shift"
        latin:keyIcon="iconShiftKey"
        latin:keyIconShifted="iconShiftedShiftKey"
        latin:backgroundType="functional"
        latin:isSticky="true" />
        latin:backgroundType="sticky" />
    <key-style
        latin:styleName="deleteKeyStyle"
        latin:code="@integer/key_delete"
+1 −2
Original line number Diff line number Diff line
@@ -67,8 +67,7 @@
        latin:code="@integer/key_shift"
        latin:keyIcon="iconShiftKey"
        latin:keyIconShifted="iconShiftedShiftKey"
        latin:backgroundType="functional"
        latin:isSticky="true" />
        latin:backgroundType="sticky" />
    <key-style
        latin:styleName="deleteKeyStyle"
        latin:code="@integer/key_delete"
+60 −62
Original line number Diff line number Diff line
@@ -82,8 +82,6 @@ public class Key {
    /** The visual insets */
    public final int mVisualInsetsLeft;
    public final int mVisualInsetsRight;
    /** Whether this key is sticky, i.e., a toggle key */
    public final boolean mSticky;
    /** X coordinate of the key in the keyboard layout */
    public final int mX;
    /** Y coordinate of the key in the keyboard layout */
@@ -108,6 +106,7 @@ public class Key {
    public static final int BACKGROUND_TYPE_NORMAL = 0;
    public static final int BACKGROUND_TYPE_FUNCTIONAL = 1;
    public static final int BACKGROUND_TYPE_ACTION = 2;
    public static final int BACKGROUND_TYPE_STICKY = 3;

    /** Whether this key repeats itself when held down */
    public final boolean mRepeatable;
@@ -126,55 +125,6 @@ public class Key {
    private static final int KEYWIDTH_FILL_RIGHT = -1;
    private static final int KEYWIDTH_FILL_BOTH = -2;

    private final static int[] KEY_STATE_NORMAL_ON = {
        android.R.attr.state_checkable,
        android.R.attr.state_checked
    };

    private final static int[] KEY_STATE_PRESSED_ON = {
        android.R.attr.state_pressed,
        android.R.attr.state_checkable,
        android.R.attr.state_checked
    };

    private final static int[] KEY_STATE_NORMAL_OFF = {
        android.R.attr.state_checkable
    };

    private final static int[] KEY_STATE_PRESSED_OFF = {
        android.R.attr.state_pressed,
        android.R.attr.state_checkable
    };

    private final static int[] KEY_STATE_NORMAL = {
    };

    private final static int[] KEY_STATE_PRESSED = {
        android.R.attr.state_pressed
    };

    // functional normal state (with properties)
    private static final int[] KEY_STATE_FUNCTIONAL_NORMAL = {
            android.R.attr.state_single
    };

    // functional pressed state (with properties)
    private static final int[] KEY_STATE_FUNCTIONAL_PRESSED = {
            android.R.attr.state_single,
            android.R.attr.state_pressed
    };

    // action normal state (with properties)
    private static final int[] KEY_STATE_ACTIVE_NORMAL = {
            android.R.attr.state_active
    };

    // action pressed state (with properties)
    private static final int[] KEY_STATE_ACTIVE_PRESSED = {
            android.R.attr.state_active,
            android.R.attr.state_pressed
    };

    // RTL parenthesis character swapping map.
    private static final Map<Integer, Integer> sRtlParenthesisMap = new HashMap<Integer, Integer>();

@@ -242,7 +192,6 @@ public class Key {
        mHintLabel = hintLabel;
        mLabelOption = 0;
        mBackgroundType = BACKGROUND_TYPE_NORMAL;
        mSticky = false;
        mRepeatable = false;
        mMoreKeys = null;
        mMaxMoreKeysColumn = 0;
@@ -344,7 +293,6 @@ public class Key {
        mBackgroundType = style.getInt(
                keyAttr, R.styleable.Keyboard_Key_backgroundType, BACKGROUND_TYPE_NORMAL);
        mRepeatable = style.getBoolean(keyAttr, R.styleable.Keyboard_Key_isRepeatable, false);
        mSticky = style.getBoolean(keyAttr, R.styleable.Keyboard_Key_isSticky, false);
        mEnabled = style.getBoolean(keyAttr, R.styleable.Keyboard_Key_enabled, true);
        mEdgeFlags = 0;

@@ -388,6 +336,10 @@ public class Key {
        mEdgeFlags |= flags;
    }

    public boolean isSticky() {
        return mBackgroundType == BACKGROUND_TYPE_STICKY;
    }

    public boolean isSpacer() {
        return false;
    }
@@ -550,6 +502,55 @@ public class Key {
        return dx * dx + dy * dy;
    }

    private final static int[] KEY_STATE_NORMAL_HIGHLIGHT_ON = {
        android.R.attr.state_checkable,
        android.R.attr.state_checked
    };

    private final static int[] KEY_STATE_PRESSED_HIGHLIGHT_ON = {
        android.R.attr.state_pressed,
        android.R.attr.state_checkable,
        android.R.attr.state_checked
    };

    private final static int[] KEY_STATE_NORMAL_HIGHLIGHT_OFF = {
        android.R.attr.state_checkable
    };

    private final static int[] KEY_STATE_PRESSED_HIGHLIGHT_OFF = {
        android.R.attr.state_pressed,
        android.R.attr.state_checkable
    };

    private final static int[] KEY_STATE_NORMAL = {
    };

    private final static int[] KEY_STATE_PRESSED = {
        android.R.attr.state_pressed
    };

    // functional normal state (with properties)
    private static final int[] KEY_STATE_FUNCTIONAL_NORMAL = {
            android.R.attr.state_single
    };

    // functional pressed state (with properties)
    private static final int[] KEY_STATE_FUNCTIONAL_PRESSED = {
            android.R.attr.state_single,
            android.R.attr.state_pressed
    };

    // action normal state (with properties)
    private static final int[] KEY_STATE_ACTIVE_NORMAL = {
            android.R.attr.state_active
    };

    // action pressed state (with properties)
    private static final int[] KEY_STATE_ACTIVE_PRESSED = {
            android.R.attr.state_active,
            android.R.attr.state_pressed
    };

    /**
     * Returns the drawable state for the key, based on the current state and type of the key.
     * @return the drawable state of the key.
@@ -558,20 +559,17 @@ public class Key {
    public int[] getCurrentDrawableState() {
        final boolean pressed = mPressed;

        // TODO: "Sticky" should be one of backgroundType.
        if (mSticky) {
            if (mHighlightOn) {
                return pressed ? KEY_STATE_PRESSED_ON : KEY_STATE_NORMAL_ON;
            } else {
                return pressed ? KEY_STATE_PRESSED_OFF : KEY_STATE_NORMAL_OFF;
            }
        }

        switch (mBackgroundType) {
        case BACKGROUND_TYPE_FUNCTIONAL:
            return pressed ? KEY_STATE_FUNCTIONAL_PRESSED : KEY_STATE_FUNCTIONAL_NORMAL;
        case BACKGROUND_TYPE_ACTION:
            return pressed ? KEY_STATE_ACTIVE_PRESSED : KEY_STATE_ACTIVE_NORMAL;
        case BACKGROUND_TYPE_STICKY:
            if (mHighlightOn) {
                return pressed ? KEY_STATE_PRESSED_HIGHLIGHT_ON : KEY_STATE_NORMAL_HIGHLIGHT_ON;
            } else {
                return pressed ? KEY_STATE_PRESSED_HIGHLIGHT_OFF : KEY_STATE_NORMAL_HIGHLIGHT_OFF;
            }
        default: /* BACKGROUND_TYPE_NORMAL */
            return pressed ? KEY_STATE_PRESSED : KEY_STATE_NORMAL;
        }
Loading