Disable popup preview and long press on disabled key

Bug: 4268147
Change-Id: Ibcb54791ef78737dd09d8a594b5a53b0909609d6
This commit is contained in:
Tadashi G. Takaoka 2011-04-08 17:14:12 +09:00
parent b5d17e52fc
commit 967d6073bf
2 changed files with 6 additions and 1 deletions

View file

@ -379,7 +379,7 @@ public class Key {
* @see android.graphics.drawable.StateListDrawable#setState(int[]) * @see android.graphics.drawable.StateListDrawable#setState(int[])
*/ */
public int[] getCurrentDrawableState() { public int[] getCurrentDrawableState() {
final boolean pressed = mEnabled && mPressed; final boolean pressed = mPressed;
if (!mSticky && mFunctional) { if (!mSticky && mFunctional) {
if (pressed) { if (pressed) {
return KEY_STATE_FUNCTIONAL_PRESSED; return KEY_STATE_FUNCTIONAL_PRESSED;

View file

@ -546,6 +546,9 @@ public class PointerTracker {
} }
private void showKeyPreviewAndUpdateKeyGraphics(int keyIndex) { private void showKeyPreviewAndUpdateKeyGraphics(int keyIndex) {
final Key key = getKey(keyIndex);
if (key != null && !key.mEnabled)
return;
updateKeyGraphics(keyIndex); updateKeyGraphics(keyIndex);
// The modifier key, such as shift key, should not be shown as preview when multi-touch is // The modifier key, such as shift key, should not be shown as preview when multi-touch is
// supported. On the other hand, if multi-touch is not supported, the modifier key should // supported. On the other hand, if multi-touch is not supported, the modifier key should
@ -565,6 +568,8 @@ public class PointerTracker {
return; return;
} }
Key key = getKey(keyIndex); Key key = getKey(keyIndex);
if (!key.mEnabled)
return;
if (key.mCode == Keyboard.CODE_SHIFT) { if (key.mCode == Keyboard.CODE_SHIFT) {
mHandler.startLongPressShiftTimer(mLongPressShiftKeyTimeout, keyIndex, this); mHandler.startLongPressShiftTimer(mLongPressShiftKeyTimeout, keyIndex, this);
} else if (key.mManualTemporaryUpperCaseCode != Keyboard.CODE_DUMMY } else if (key.mManualTemporaryUpperCaseCode != Keyboard.CODE_DUMMY