diff options
Diffstat (limited to 'java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java')
| -rw-r--r-- | java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java index 55fc5f92a..81f8640e9 100644 --- a/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java +++ b/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java @@ -19,8 +19,10 @@ package com.android.inputmethod.keyboard; import android.content.Context; import android.content.pm.PackageManager; import android.content.res.Resources; +import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Paint; +import android.graphics.drawable.Drawable; import android.os.Message; import android.text.TextUtils; import android.util.AttributeSet; @@ -65,6 +67,14 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke private final boolean mIsSpacebarTriggeringPopupByLongPress; private boolean mMultipleEnabledIMEsOrSubtypes; + /* Shortcut key and its icons if available */ + private Key mShortcutKey; + // TODO: Remove this variable, use KeyboardIconsSet instead. + private Drawable mEnabledShortcutIcon; + // TODO: Remove this variable and LatinKeyboardView.disabledShortcutIcon attribute. + // This should be moved to KeyboardIconsSet. + private final Drawable mDisabledShortcutIcon; + private final SuddenJumpingTouchEventHandler mTouchScreenRegulator; // Timing constants @@ -228,7 +238,7 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke } public LatinKeyboardView(Context context, AttributeSet attrs) { - this(context, attrs, R.attr.keyboardViewStyle); + this(context, attrs, R.attr.latinKeyboardViewStyle); } public LatinKeyboardView(Context context, AttributeSet attrs, int defStyle) { @@ -256,6 +266,11 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke final int longPressSpaceKeyTimeout = res.getInteger(R.integer.config_long_press_space_key_timeout); mIsSpacebarTriggeringPopupByLongPress = (longPressSpaceKeyTimeout > 0); + + final TypedArray a = context.obtainStyledAttributes( + attrs, R.styleable.LatinKeyboardView, defStyle, R.style.LatinKeyboardView); + mDisabledShortcutIcon = a.getDrawable(R.styleable.LatinKeyboardView_disabledShortcutIcon); + a.recycle(); } public void startIgnoringDoubleTap() { @@ -310,6 +325,9 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke PointerTracker.setKeyDetector(mKeyDetector); mTouchScreenRegulator.setKeyboard(keyboard); mMoreKeysPanelCache.clear(); + + mShortcutKey = keyboard.getKey(Keyboard.CODE_SHORTCUT); + mEnabledShortcutIcon = (mShortcutKey != null) ? mShortcutKey.getIcon() : null; } /** @@ -695,6 +713,13 @@ public class LatinKeyboardView extends KeyboardView implements PointerTracker.Ke return false; } + public void updateShortcutKey(boolean available) { + if (mShortcutKey == null) return; + mShortcutKey.setEnabled(available); + mShortcutKey.setIcon(available ? mEnabledShortcutIcon : mDisabledShortcutIcon); + invalidateKey(mShortcutKey); + } + public void updateSpacebar() { mMultipleEnabledIMEsOrSubtypes = Utils.hasMultipleEnabledIMEsOrSubtypes( true /* include aux subtypes */); |
