summaryrefslogtreecommitdiff
path: root/core/java/android/view/KeyEvent.java
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2009-09-14 21:21:52 -0700
committerDianne Hackborn <hackbod@google.com>2009-09-14 21:21:52 -0700
commit8d37426c754e9822feaa8c6cc0b7c13e8523e217 (patch)
tree188470dc3254756b9a6bc345f9cf39171a6b3725 /core/java/android/view/KeyEvent.java
parent83fe3f559249451706957b1a5f660b2b8272f114 (diff)
Various fixed for back key handling.
My last change was far from perfect. Hopefully this gets us a little closer. Change-Id: I413e55b6af42400b565de3040859d25d668bc9d2
Diffstat (limited to 'core/java/android/view/KeyEvent.java')
-rw-r--r--core/java/android/view/KeyEvent.java16
1 files changed, 16 insertions, 0 deletions
diff --git a/core/java/android/view/KeyEvent.java b/core/java/android/view/KeyEvent.java
index daa4b295a0f4..d4f978756f4d 100644
--- a/core/java/android/view/KeyEvent.java
+++ b/core/java/android/view/KeyEvent.java
@@ -18,6 +18,7 @@ package android.view;
import android.os.Parcel;
import android.os.Parcelable;
+import android.util.Log;
import android.util.SparseIntArray;
import android.view.KeyCharacterMap;
import android.view.KeyCharacterMap.KeyData;
@@ -319,6 +320,9 @@ public class KeyEvent implements Parcelable {
return KeyCharacterMap.getDeadChar(accent, c);
}
+ static final boolean DEBUG = false;
+ static final String TAG = "KeyEvent";
+
private int mMetaState;
private int mAction;
private int mKeyCode;
@@ -1028,13 +1032,17 @@ public class KeyEvent implements Parcelable {
switch (mAction) {
case ACTION_DOWN: {
mFlags &= ~FLAG_START_TRACKING;
+ if (DEBUG) Log.v(TAG, "Key down to " + target + " in " + state
+ + ": " + this);
boolean res = receiver.onKeyDown(mKeyCode, this);
if (state != null) {
if (res && mRepeatCount == 0 && (mFlags&FLAG_START_TRACKING) != 0) {
+ if (DEBUG) Log.v(TAG, " Start tracking!");
state.startTracking(this, target);
} else if (isLongPress() && state.isTracking(this)) {
try {
if (receiver.onKeyLongPress(mKeyCode, this)) {
+ if (DEBUG) Log.v(TAG, " Clear from long press!");
state.performedLongPress(this);
res = true;
}
@@ -1045,6 +1053,8 @@ public class KeyEvent implements Parcelable {
return res;
}
case ACTION_UP:
+ if (DEBUG) Log.v(TAG, "Key up to " + target + " in " + state
+ + ": " + this);
if (state != null) {
state.handleUpEvent(this);
}
@@ -1085,6 +1095,7 @@ public class KeyEvent implements Parcelable {
* Reset back to initial state.
*/
public void reset() {
+ if (DEBUG) Log.v(TAG, "Reset: " + this);
mDownKeyCode = 0;
mDownTarget = null;
mActiveLongPresses.clear();
@@ -1095,6 +1106,7 @@ public class KeyEvent implements Parcelable {
*/
public void reset(Object target) {
if (mDownTarget == target) {
+ if (DEBUG) Log.v(TAG, "Reset in " + target + ": " + this);
mDownKeyCode = 0;
mDownTarget = null;
}
@@ -1115,6 +1127,7 @@ public class KeyEvent implements Parcelable {
throw new IllegalArgumentException(
"Can only start tracking on a down event");
}
+ if (DEBUG) Log.v(TAG, "Start trackingt in " + target + ": " + this);
mDownKeyCode = event.getKeyCode();
mDownTarget = target;
}
@@ -1145,12 +1158,15 @@ public class KeyEvent implements Parcelable {
*/
public void handleUpEvent(KeyEvent event) {
final int keyCode = event.getKeyCode();
+ if (DEBUG) Log.v(TAG, "Handle key up " + event + ": " + this);
int index = mActiveLongPresses.indexOfKey(keyCode);
if (index >= 0) {
+ if (DEBUG) Log.v(TAG, " Index: " + index);
event.mFlags |= FLAG_CANCELED | FLAG_CANCELED_LONG_PRESS;
mActiveLongPresses.removeAt(index);
}
if (mDownKeyCode == keyCode) {
+ if (DEBUG) Log.v(TAG, " Tracking!");
event.mFlags |= FLAG_TRACKING;
mDownKeyCode = 0;
mDownTarget = null;