From 10227a71a047706a2290ff0b57f3437d5add7b35 Mon Sep 17 00:00:00 2001 From: "Tadashi G. Takaoka" Date: Sat, 13 Nov 2010 00:16:34 -0800 Subject: Implement temporary upper case hint icon This change partially implements the requested feature. The following are not supported yet. - Non-letter key handling on automatic temporary upper case layout. - Non-letter key handling on shift chording in caps lock layout. - Hint icons for manual temporary upper case layout are not final ones. Bug: 3193390 Change-Id: I636da99d1be05b1337935d87c6f4d140661e1cc8 --- .../android/inputmethod/latin/BaseKeyboardView.java | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) (limited to 'java/src/com/android/inputmethod/latin/BaseKeyboardView.java') diff --git a/java/src/com/android/inputmethod/latin/BaseKeyboardView.java b/java/src/com/android/inputmethod/latin/BaseKeyboardView.java index a31785f50..f2edd6b04 100644 --- a/java/src/com/android/inputmethod/latin/BaseKeyboardView.java +++ b/java/src/com/android/inputmethod/latin/BaseKeyboardView.java @@ -772,6 +772,8 @@ public class BaseKeyboardView extends View implements PointerTracker.UIProxy { final int kbdPaddingTop = getPaddingTop(); final Key[] keys = mKeys; final Key invalidKey = mInvalidatedKey; + final boolean isTemporaryUpperCase = (mKeyboard instanceof LatinKeyboard + && ((LatinKeyboard)mKeyboard).isTemporaryUpperCase()); paint.setColor(mKeyTextColor); boolean drawSingleKey = false; @@ -807,17 +809,6 @@ public class BaseKeyboardView extends View implements PointerTracker.UIProxy { boolean drawHintIcon = true; if (label != null) { - // If keyboard is multi-touch capable and in temporary upper case state and key has - // tempoarary shift label, label should be hint character and hint icon should not - // be drawn. - if (mHasDistinctMultitouch - && mKeyboard instanceof LatinKeyboard - && ((LatinKeyboard)mKeyboard).isTemporaryUpperCase() - && key.temporaryShiftLabel != null) { - label = key.temporaryShiftLabel.toString(); - drawHintIcon = false; - } - // For characters, use large font. For labels like "Done", use small font. final int labelSize; if (label.length() > 1 && key.codes.length < 2) { @@ -862,7 +853,10 @@ public class BaseKeyboardView extends View implements PointerTracker.UIProxy { int drawableHeight = key.height; int drawableX = 0; int drawableY = HINT_ICON_VERTICAL_ADJUSTMENT_PIXEL; - drawIcon(canvas, key.hintIcon, drawableX, drawableY, drawableWidth, drawableHeight); + Drawable icon = (isTemporaryUpperCase + && key.manualTemporaryUpperCaseHintIcon != null) + ? key.manualTemporaryUpperCaseHintIcon : key.hintIcon; + drawIcon(canvas, icon, drawableX, drawableY, drawableWidth, drawableHeight); } canvas.translate(-key.x - kbdPaddingLeft, -key.y - kbdPaddingTop); } -- cgit v1.2.3-83-g751a