summaryrefslogtreecommitdiff
path: root/java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java')
-rw-r--r--java/src/com/android/inputmethod/keyboard/LatinKeyboardView.java27
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 */);