Fix bug 2557891 - incorrect cts test.

Change-Id: I531d07453567d8a01c73224c76a5b397422b8c44
diff --git a/tests/tests/view/src/android/view/cts/ViewTest.java b/tests/tests/view/src/android/view/cts/ViewTest.java
index 0054ebb..462f164 100644
--- a/tests/tests/view/src/android/view/cts/ViewTest.java
+++ b/tests/tests/view/src/android/view/cts/ViewTest.java
@@ -43,6 +43,7 @@
 import android.test.TouchUtils;
 import android.test.UiThreadTest;
 import android.util.AttributeSet;
+import android.util.Log;
 import android.util.SparseArray;
 import android.util.Xml;
 import android.view.ContextMenu;
@@ -98,6 +99,8 @@
     /** timeout delta when wait in case the system is sluggish */
     private static final long TIMEOUT_DELTA = 1000;
 
+    private static final String LOG_TAG = "ViewTest";
+
     @Override
     protected void setUp() throws Exception {
         super.setUp();
@@ -3645,6 +3648,21 @@
         }
     }
 
+    /**
+     * For the duration of the tap timeout we are in a 'prepressed' state
+     * to differentiate between taps and touch scrolls.
+     * Wait at least this long before testing if the view is pressed
+     * by calling this function.
+     */
+    private void waitPrepressedTimeout() {
+        try {
+            Thread.sleep(ViewConfiguration.getTapTimeout() + 10);
+        } catch (InterruptedException e) {
+            Log.e(LOG_TAG, "waitPrepressedTimeout() interrupted! Test may fail!", e);
+        }
+        getInstrumentation().waitForIdleSync();
+    }
+
     @TestTargetNew(
         level = TestLevel.COMPLETE,
         method = "onTouchEvent",
@@ -3687,6 +3705,7 @@
                 x, y, 0);
         assertFalse(view.isPressed());
         getInstrumentation().sendPointerSync(event);
+        waitPrepressedTimeout();
         assertTrue(view.hasCalledOnTouchEvent());
         assertTrue(view.isPressed());
 
@@ -3711,8 +3730,9 @@
         y = xy[1] + viewHeight - 1;
         event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_MOVE, x, y, 0);
         getInstrumentation().sendPointerSync(event);
+        waitPrepressedTimeout();
         assertTrue(view.hasCalledOnTouchEvent());
-        assertTrue(view.isPressed());
+        assertFalse(view.isPressed());
 
         // MotionEvent.ACTION_UP
         OnClickListenerImpl listener = new OnClickListenerImpl();
@@ -3723,7 +3743,7 @@
         event = MotionEvent.obtain(downTime, eventTime, MotionEvent.ACTION_UP, x, y, 0);
         getInstrumentation().sendPointerSync(event);
         assertTrue(view.hasCalledOnTouchEvent());
-        assertTrue(listener.hasOnClick());
+        assertFalse(listener.hasOnClick());
 
         view.reset();
         x = xy[0] + viewWidth / 2.0f;