Merge "Added the new keyword tap for the scripted monkey." into gingerbread
diff --git a/cmds/monkey/src/com/android/commands/monkey/MonkeySourceScript.java b/cmds/monkey/src/com/android/commands/monkey/MonkeySourceScript.java
index 09d247d..841182c 100644
--- a/cmds/monkey/src/com/android/commands/monkey/MonkeySourceScript.java
+++ b/cmds/monkey/src/com/android/commands/monkey/MonkeySourceScript.java
@@ -104,6 +104,8 @@
 
     private static final String EVENT_KEYWORD_RUNCMD = "RunCmd";
 
+    private static final String EVENT_KEYWORD_TAP = "Tap";
+
     // a line at the end of the header
     private static final String STARTING_DATA_LINE = "start data >>";
 
@@ -253,7 +255,6 @@
                 float yPrecision = Float.parseFloat(args[9]);
                 int device = Integer.parseInt(args[10]);
                 int edgeFlags = Integer.parseInt(args[11]);
-
                 int type = MonkeyEvent.EVENT_TYPE_TRACKBALL;
                 if (s.indexOf("Pointer") > 0) {
                     type = MonkeyEvent.EVENT_TYPE_POINTER;
@@ -266,6 +267,40 @@
             return;
         }
 
+        // Handle tap event
+        if ((s.indexOf(EVENT_KEYWORD_TAP) >= 0) && args.length == 2) {
+            try {
+                float x = Float.parseFloat(args[0]);
+                float y = Float.parseFloat(args[1]);
+
+                // Set the default parameters
+                long downTime = SystemClock.uptimeMillis();
+                float pressure = 1;
+                float xPrecision = 1;
+                float yPrecision = 1;
+                int edgeFlags = 0;
+                float size = 5;
+                int device = 0;
+                int metaState = 0;
+                int type = MonkeyEvent.EVENT_TYPE_POINTER;
+
+                MonkeyMotionEvent e1 =
+                        new MonkeyMotionEvent(type, downTime, downTime, KeyEvent.ACTION_DOWN, x,
+                                y, pressure, size, metaState, xPrecision, yPrecision, device,
+                                edgeFlags);
+                MonkeyMotionEvent e2 =
+                        new MonkeyMotionEvent(type, downTime, downTime, KeyEvent.ACTION_UP, x,
+                                y, pressure, size, metaState, xPrecision, yPrecision, device,
+                                edgeFlags);
+                mQ.addLast(e1);
+                mQ.addLast(e2);
+
+            } catch (NumberFormatException e) {
+                System.err.println("// " + e.toString());
+            }
+            return;
+        }
+
         // Handle flip events
         if (s.indexOf(EVENT_KEYWORD_FLIP) >= 0 && args.length == 1) {
             boolean keyboardOpen = Boolean.parseBoolean(args[0]);