Add "enabled" as an attribute of Key in Keyboard xml

If the key is marked as "enabled=false", the key will not respond to be pressed.

Bug: 3384942
Change-Id: I1ea82d9f3dfa5a9916ff3bbc736ea7e6c77426ae
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 9759e0e..b6d5fdc 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -140,6 +140,8 @@
         <attr name="keyStyle" format="string" />
         <!-- Shift key icon for shifted state -->
         <attr name="shiftedIcon" format="reference" />
+        <!-- The key is enabled and responds on press. -->
+        <attr name="enabled" format="boolean" />
     </declare-styleable>
 
     <declare-styleable name="Keyboard_Row">
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index 23886ad..7396f05 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -95,7 +95,7 @@
     public boolean mPressed;
     /** If this is a sticky key, is it on? */
     public boolean mOn;
-    /** Key is enabled or not. */
+    /** Key is enabled and responds on press */
     public boolean mEnabled = true;
 
     private final static int[] KEY_STATE_NORMAL_ON = {
@@ -226,6 +226,7 @@
             mRepeatable = style.getBoolean(keyAttr, R.styleable.Keyboard_Key_isRepeatable, false);
             mModifier = style.getBoolean(keyAttr, R.styleable.Keyboard_Key_isModifier, false);
             mSticky = style.getBoolean(keyAttr, R.styleable.Keyboard_Key_isSticky, false);
+            mEnabled = style.getBoolean(keyAttr, R.styleable.Keyboard_Key_enabled, true);
             mEdgeFlags = style.getFlag(keyAttr, R.styleable.Keyboard_Key_keyEdgeFlags, 0)
                     | row.mRowEdgeFlags;