From a6d3a4d61b9655816128aa929331b7624476df64 Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Thu, 15 Sep 2011 16:13:04 +0900 Subject: Make action key background more visually prominent Bug: 5232726 Change-Id: I76ff2fb431ca295693ceb231a0f13da44f9293e6 --- java/src/com/android/inputmethod/keyboard/Key.java | 50 +++++++++++----------- 1 file changed, 25 insertions(+), 25 deletions(-) (limited to 'java/src') 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 sRtlParenthesisMap = new HashMap(); @@ -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 { -- cgit v1.2.3-83-g751a