From 425e1996b837422480d5599e6ed832dd310cad30 Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Fri, 27 Jan 2012 18:10:19 +0900 Subject: [PATCH] Add inactivatedLabel and inactivatedUppercaseLetter flags for Key.keyLabelFlags Change-Id: I6c7dc79cbad360602b278283f4c3a24c54040622 --- java/res/values/attrs.xml | 4 ++++ java/src/com/android/inputmethod/keyboard/Key.java | 10 ++++++++++ .../android/inputmethod/keyboard/KeyboardView.java | 14 +++++++++++--- 3 files changed, 25 insertions(+), 3 deletions(-) diff --git a/java/res/values/attrs.xml b/java/res/values/attrs.xml index b3bd0fe59..bd7c550c1 100644 --- a/java/res/values/attrs.xml +++ b/java/res/values/attrs.xml @@ -269,6 +269,10 @@ + + + + diff --git a/java/src/com/android/inputmethod/keyboard/Key.java b/java/src/com/android/inputmethod/keyboard/Key.java index 9c495fd5f..bb90653c1 100644 --- a/java/src/com/android/inputmethod/keyboard/Key.java +++ b/java/src/com/android/inputmethod/keyboard/Key.java @@ -72,6 +72,8 @@ public class Key { private static final int LABEL_FLAGS_WITH_ICON_RIGHT = 0x2000; private static final int LABEL_FLAGS_AUTO_X_SCALE = 0x4000; private static final int LABEL_FLAGS_PRESERVE_CASE = 0x8000; + private static final int LABEL_FLAGS_INACTIVATED_LABEL = 0x10000; + private static final int LABEL_FLAGS_INACTIVATED_UPPERCASE_LETTER = 0x20000; /** Icon to display instead of a label. Icon takes precedence over a label */ private final int mIconAttrId; @@ -509,6 +511,14 @@ public class Key { return (mLabelFlags & LABEL_FLAGS_AUTO_X_SCALE) != 0; } + public boolean isInactivatedLabel() { + return (mLabelFlags & LABEL_FLAGS_INACTIVATED_LABEL) != 0; + } + + public boolean isInactivatedUppercaseLetter() { + return (mLabelFlags & LABEL_FLAGS_INACTIVATED_UPPERCASE_LETTER) != 0; + } + // TODO: Get rid of this method. public Drawable getIcon(KeyboardIconsSet iconSet) { return mEnabled ? mIcon : iconSet.getIconByAttrId(mDisabledIconAttrId); diff --git a/java/src/com/android/inputmethod/keyboard/KeyboardView.java b/java/src/com/android/inputmethod/keyboard/KeyboardView.java index 6f4ef2580..d977327a8 100644 --- a/java/src/com/android/inputmethod/keyboard/KeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/KeyboardView.java @@ -571,8 +571,11 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { Math.min(1.0f, (keyWidth * MAX_LABEL_RATIO) / getLabelWidth(label, paint))); } + // TODO: Remove this first if-clause. if (key.hasUppercaseLetter() && mKeyboard.isManualTemporaryUpperCase()) { paint.setColor(params.mKeyTextInactivatedColor); + } else if (key.isInactivatedLabel()) { + paint.setColor(params.mKeyTextInactivatedColor); } else { paint.setColor(params.mKeyTextColor); } @@ -618,9 +621,14 @@ public class KeyboardView extends View implements PointerTracker.DrawingProxy { hintSize = params.mKeyHintLabelSize; paint.setTypeface(Typeface.DEFAULT); } else if (key.hasUppercaseLetter()) { - hintColor = mKeyboard.isManualTemporaryUpperCase() - ? params.mKeyUppercaseLetterActivatedColor - : params.mKeyUppercaseLetterInactivatedColor; + // TODO: Remove this first if-clause. + if (mKeyboard.isManualTemporaryUpperCase()) { + hintColor = params.mKeyUppercaseLetterActivatedColor; + } else if (!key.isInactivatedUppercaseLetter()) { + hintColor = params.mKeyUppercaseLetterActivatedColor; + } else { + hintColor = params.mKeyUppercaseLetterInactivatedColor; + } hintSize = params.mKeyUppercaseLetterSize; } else { // key.hasHintLetter() hintColor = params.mKeyHintLetterColor;