aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
Diffstat (limited to 'java')
-rw-r--r--java/res/drawable-hdpi/btn_keyboard_key_dark_active_holo.9.pngbin0 -> 479 bytes
-rw-r--r--java/res/drawable-mdpi/btn_keyboard_key_dark_active_holo.9.pngbin0 -> 346 bytes
-rw-r--r--java/res/drawable-xhdpi/btn_keyboard_key_dark_active_holo.9.pngbin0 -> 605 bytes
-rw-r--r--java/res/drawable/btn_keyboard_key_ics.xml9
-rw-r--r--java/res/values/attrs.xml1
-rw-r--r--java/res/xml/kbd_key_styles.xml10
-rw-r--r--java/src/com/android/inputmethod/keyboard/Key.java50
7 files changed, 39 insertions, 31 deletions
diff --git a/java/res/drawable-hdpi/btn_keyboard_key_dark_active_holo.9.png b/java/res/drawable-hdpi/btn_keyboard_key_dark_active_holo.9.png
new file mode 100644
index 000000000..8bb66b722
--- /dev/null
+++ b/java/res/drawable-hdpi/btn_keyboard_key_dark_active_holo.9.png
Binary files differ
diff --git a/java/res/drawable-mdpi/btn_keyboard_key_dark_active_holo.9.png b/java/res/drawable-mdpi/btn_keyboard_key_dark_active_holo.9.png
new file mode 100644
index 000000000..c8d7ee0af
--- /dev/null
+++ b/java/res/drawable-mdpi/btn_keyboard_key_dark_active_holo.9.png
Binary files differ
diff --git a/java/res/drawable-xhdpi/btn_keyboard_key_dark_active_holo.9.png b/java/res/drawable-xhdpi/btn_keyboard_key_dark_active_holo.9.png
new file mode 100644
index 000000000..eba91db33
--- /dev/null
+++ b/java/res/drawable-xhdpi/btn_keyboard_key_dark_active_holo.9.png
Binary files differ
diff --git a/java/res/drawable/btn_keyboard_key_ics.xml b/java/res/drawable/btn_keyboard_key_ics.xml
index 7335cc299..e893da133 100644
--- a/java/res/drawable/btn_keyboard_key_ics.xml
+++ b/java/res/drawable/btn_keyboard_key_ics.xml
@@ -23,6 +23,13 @@
<item android:state_single="true"
android:drawable="@drawable/btn_keyboard_key_dark_normal_holo" />
+ <!-- Action keys. -->
+
+ <item android:state_active="true" android:state_pressed="true"
+ android:drawable="@drawable/btn_keyboard_key_dark_pressed_holo" />
+ <item android:state_active="true"
+ android:drawable="@drawable/btn_keyboard_key_dark_active_holo" />
+
<!-- Toggle keys. Use checkable/checked state. -->
<item android:state_checkable="true" android:state_checked="true" android:state_pressed="true"
@@ -34,7 +41,7 @@
<item android:state_checkable="true"
android:drawable="@drawable/btn_keyboard_key_dark_normal_off_holo" />
- <!-- Normal keys -->
+ <!-- Normal keys. -->
<item android:state_pressed="true"
android:drawable="@drawable/btn_keyboard_key_light_pressed_holo" />
diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml
index 3275cd017..0451c9f94 100644
--- a/java/res/values/attrs.xml
+++ b/java/res/values/attrs.xml
@@ -198,6 +198,7 @@
<!-- This should be aligned with Key.BACKGROUND_TYPE_* -->
<enum name="normal" value="0" />
<enum name="functional" value="1" />
+ <enum name="action" value="2" />
</attr>
<!-- Whether this is a toggle key. -->
<attr name="isSticky" format="boolean" />
diff --git a/java/res/xml/kbd_key_styles.xml b/java/res/xml/kbd_key_styles.xml
index e1f68d4e2..9df647284 100644
--- a/java/res/xml/kbd_key_styles.xml
+++ b/java/res/xml/kbd_key_styles.xml
@@ -102,7 +102,7 @@
latin:code="@integer/key_return"
latin:keyLabel="@string/label_go_key"
latin:keyLabelOption="autoXScale"
- latin:parentStyle="functionalKeyStyle" />
+ latin:backgroundType="action" />
</case>
<case
latin:imeAction="actionNext"
@@ -112,7 +112,7 @@
latin:code="@integer/key_return"
latin:keyLabel="@string/label_next_key"
latin:keyLabelOption="autoXScale"
- latin:parentStyle="functionalKeyStyle" />
+ latin:backgroundType="action" />
</case>
<case
latin:imeAction="actionDone"
@@ -122,7 +122,7 @@
latin:code="@integer/key_return"
latin:keyLabel="@string/label_done_key"
latin:keyLabelOption="autoXScale"
- latin:parentStyle="functionalKeyStyle" />
+ latin:backgroundType="action" />
</case>
<case
latin:imeAction="actionSend"
@@ -132,7 +132,7 @@
latin:code="@integer/key_return"
latin:keyLabel="@string/label_send_key"
latin:keyLabelOption="autoXScale"
- latin:parentStyle="functionalKeyStyle" />
+ latin:backgroundType="action" />
</case>
<case
latin:imeAction="actionSearch"
@@ -141,7 +141,7 @@
latin:styleName="returnKeyStyle"
latin:code="@integer/key_return"
latin:keyIcon="iconSearchKey"
- latin:parentStyle="functionalKeyStyle" />
+ latin:backgroundType="action" />
</case>
<default>
<key-style
diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java
index c4d5e857d..9959a78f9 100644
--- a/java/src/com/android/inputmethod/keyboard/Key.java
+++ b/java/src/com/android/inputmethod/keyboard/Key.java
@@ -107,6 +107,7 @@ public class Key {
public final int mBackgroundType;
public static final int BACKGROUND_TYPE_NORMAL = 0;
public static final int BACKGROUND_TYPE_FUNCTIONAL = 1;
+ public static final int BACKGROUND_TYPE_ACTION = 2;
/** Whether this key repeats itself when held down */
public final boolean mRepeatable;
@@ -163,6 +164,17 @@ public class Key {
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>();
@@ -545,36 +557,24 @@ public class Key {
*/
public int[] getCurrentDrawableState() {
final boolean pressed = mPressed;
- if (!mSticky && mBackgroundType == BACKGROUND_TYPE_FUNCTIONAL) {
- if (pressed) {
- return KEY_STATE_FUNCTIONAL_PRESSED;
+
+ // TODO: "Sticky" should be one of backgroundType.
+ if (mSticky) {
+ if (mHighlightOn) {
+ return pressed ? KEY_STATE_PRESSED_ON : KEY_STATE_NORMAL_ON;
} else {
- return KEY_STATE_FUNCTIONAL_NORMAL;
+ return pressed ? KEY_STATE_PRESSED_OFF : KEY_STATE_NORMAL_OFF;
}
}
- int[] states = KEY_STATE_NORMAL;
-
- if (mHighlightOn) {
- if (pressed) {
- states = KEY_STATE_PRESSED_ON;
- } else {
- states = KEY_STATE_NORMAL_ON;
- }
- } else {
- if (mSticky) {
- if (pressed) {
- states = KEY_STATE_PRESSED_OFF;
- } else {
- states = KEY_STATE_NORMAL_OFF;
- }
- } else {
- if (pressed) {
- states = KEY_STATE_PRESSED;
- }
- }
+ 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;
+ default: /* BACKGROUND_TYPE_NORMAL */
+ return pressed ? KEY_STATE_PRESSED : KEY_STATE_NORMAL;
}
- return states;
}
public static class Spacer extends Key {