summaryrefslogtreecommitdiffstats
path: root/cmds
diff options
context:
space:
mode:
authorJeff Brown <jeffbrown@google.com>2012-04-26 12:11:50 -0700
committerJeff Brown <jeffbrown@google.com>2012-04-26 12:11:50 -0700
commitf63ed9b83c60e1be6fb34c6a64d2fb44b4156d00 (patch)
tree7fa5e37d84084e141f6a9842038eca84b720151a /cmds
parent1632bc614d42e1997472b48ab19c347a04f80516 (diff)
downloadandroid_development-f63ed9b83c60e1be6fb34c6a64d2fb44b4156d00.tar.gz
android_development-f63ed9b83c60e1be6fb34c6a64d2fb44b4156d00.tar.bz2
android_development-f63ed9b83c60e1be6fb34c6a64d2fb44b4156d00.zip
Fix Monkey key events.
Monkey should not be injecting keys with metastate of -1. Cleaned up the code to ensure it doesn't happen and to make it more obvious what's going on. Bug: 6397645 Change-Id: I7339b2fe14edb0578005f93af1f803a0ae3dec96
Diffstat (limited to 'cmds')
-rw-r--r--cmds/monkey/src/com/android/commands/monkey/MonkeyKeyEvent.java64
1 files changed, 34 insertions, 30 deletions
diff --git a/cmds/monkey/src/com/android/commands/monkey/MonkeyKeyEvent.java b/cmds/monkey/src/com/android/commands/monkey/MonkeyKeyEvent.java
index 53f230c35..a73296824 100644
--- a/cmds/monkey/src/com/android/commands/monkey/MonkeyKeyEvent.java
+++ b/cmds/monkey/src/com/android/commands/monkey/MonkeyKeyEvent.java
@@ -21,69 +21,73 @@ import android.hardware.input.InputManager;
import android.os.SystemClock;
import android.view.IWindowManager;
import android.view.InputDevice;
+import android.view.KeyCharacterMap;
import android.view.KeyEvent;
/**
* monkey key event
*/
public class MonkeyKeyEvent extends MonkeyEvent {
- private long mDownTime = -1;
- private int mMetaState = -1;
- private int mAction = -1;
- private int mKeyCode = -1;
- private int mScancode = -1;
- private int mRepeatCount = -1;
- private int mDeviceId = -1;
- private long mEventTime = -1;
+ private int mDeviceId;
+ private long mEventTime;
+ private long mDownTime;
+ private int mAction;
+ private int mKeyCode;
+ private int mScanCode;
+ private int mMetaState;
+ private int mRepeatCount;
private KeyEvent mKeyEvent;
- public MonkeyKeyEvent(int action, int keycode) {
- super(EVENT_TYPE_KEY);
- mAction = action;
- mKeyCode = keycode;
- }
-
- public MonkeyKeyEvent(KeyEvent e) {
- super(EVENT_TYPE_KEY);
- mKeyEvent = e;
+ public MonkeyKeyEvent(int action, int keyCode) {
+ this(-1, -1, action, keyCode, 0, 0, KeyCharacterMap.VIRTUAL_KEYBOARD, 0);
}
public MonkeyKeyEvent(long downTime, long eventTime, int action,
- int code, int repeat, int metaState,
- int device, int scancode) {
+ int keyCode, int repeatCount, int metaState,
+ int device, int scanCode) {
super(EVENT_TYPE_KEY);
-
+ mDownTime = downTime;
+ mEventTime = eventTime;
mAction = action;
- mKeyCode = code;
+ mKeyCode = keyCode;
+ mRepeatCount = repeatCount;
mMetaState = metaState;
- mScancode = scancode;
- mRepeatCount = repeat;
mDeviceId = device;
- mDownTime = downTime;
- mEventTime = eventTime;
+ mScanCode = scanCode;
+ }
+
+ public MonkeyKeyEvent(KeyEvent e) {
+ super(EVENT_TYPE_KEY);
+ mKeyEvent = e;
}
public int getKeyCode() {
- return mKeyCode;
+ return mKeyEvent != null ? mKeyEvent.getKeyCode() : mKeyCode;
}
public int getAction() {
- return mAction;
+ return mKeyEvent != null ? mKeyEvent.getAction() : mAction;
}
public long getDownTime() {
- return mDownTime;
+ return mKeyEvent != null ? mKeyEvent.getDownTime() : mDownTime;
}
public long getEventTime() {
- return mEventTime;
+ return mKeyEvent != null ? mKeyEvent.getEventTime() : mEventTime;
}
public void setDownTime(long downTime) {
+ if (mKeyEvent != null) {
+ throw new IllegalStateException("Cannot modify down time of this key event.");
+ }
mDownTime = downTime;
}
public void setEventTime(long eventTime) {
+ if (mKeyEvent != null) {
+ throw new IllegalStateException("Cannot modify event time of this key event.");
+ }
mEventTime = eventTime;
}
@@ -123,7 +127,7 @@ public class MonkeyKeyEvent extends MonkeyEvent {
downTime = eventTime;
}
keyEvent = new KeyEvent(downTime, eventTime, mAction, mKeyCode,
- mRepeatCount, mMetaState, mDeviceId, mScancode,
+ mRepeatCount, mMetaState, mDeviceId, mScanCode,
KeyEvent.FLAG_FROM_SYSTEM, InputDevice.SOURCE_KEYBOARD);
}
if (!InputManager.getInstance().injectInputEvent(keyEvent,