summaryrefslogtreecommitdiff
path: root/espresso/espresso-lib/src/main/java/com/google/android/apps/common/testing/ui/espresso/action/Swipe.java
diff options
context:
space:
mode:
Diffstat (limited to 'espresso/espresso-lib/src/main/java/com/google/android/apps/common/testing/ui/espresso/action/Swipe.java')
-rw-r--r--espresso/espresso-lib/src/main/java/com/google/android/apps/common/testing/ui/espresso/action/Swipe.java115
1 files changed, 0 insertions, 115 deletions
diff --git a/espresso/espresso-lib/src/main/java/com/google/android/apps/common/testing/ui/espresso/action/Swipe.java b/espresso/espresso-lib/src/main/java/com/google/android/apps/common/testing/ui/espresso/action/Swipe.java
deleted file mode 100644
index 06e8dc8..0000000
--- a/espresso/espresso-lib/src/main/java/com/google/android/apps/common/testing/ui/espresso/action/Swipe.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
- * Copyright (C) 2014 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.google.android.apps.common.testing.ui.espresso.action;
-
-import static com.google.common.base.Preconditions.checkElementIndex;
-import static com.google.common.base.Preconditions.checkNotNull;
-
-import com.google.android.apps.common.testing.ui.espresso.UiController;
-
-import android.os.SystemClock;
-import android.util.Log;
-import android.view.MotionEvent;
-
-/**
- * Executes different swipe types to given positions.
- */
-public enum Swipe implements Swiper {
-
- /** Swipes quickly between the co-ordinates. */
- FAST {
- @Override
- public Swiper.Status sendSwipe(UiController uiController, float[] startCoordinates,
- float[] endCoordinates, float[] precision) {
- return sendLinearSwipe(uiController, startCoordinates, endCoordinates, precision,
- SWIPE_FAST_DURATION_MS);
- }
- },
-
- /** Swipes deliberately slowly between the co-ordinates, to aid in visual debugging. */
- SLOW {
- @Override
- public Swiper.Status sendSwipe(UiController uiController, float[] startCoordinates,
- float[] endCoordinates, float[] precision) {
- return sendLinearSwipe(uiController, startCoordinates, endCoordinates, precision,
- SWIPE_SLOW_DURATION_MS);
- }
- };
-
- private static final String TAG = Swipe.class.getSimpleName();
-
- /** The number of motion events to send for each swipe. */
- private static final int SWIPE_EVENT_COUNT = 10;
-
- /** Length of time a "fast" swipe should last for, in milliseconds. */
- private static final int SWIPE_FAST_DURATION_MS = 100;
-
- /** Length of time a "slow" swipe should last for, in milliseconds. */
- private static final int SWIPE_SLOW_DURATION_MS = 1500;
-
- private static float[][] interpolate(float[] start, float[] end, int steps) {
- checkElementIndex(1, start.length);
- checkElementIndex(1, end.length);
-
- float[][] res = new float[steps][2];
-
- for (int i = 1; i < steps + 1; i++) {
- res[i - 1][0] = start[0] + (end[0] - start[0]) * i / (steps + 2f);
- res[i - 1][1] = start[1] + (end[1] - start[1]) * i / (steps + 2f);
- }
-
- return res;
- }
-
- private static Swiper.Status sendLinearSwipe(UiController uiController, float[] startCoordinates,
- float[] endCoordinates, float[] precision, int duration) {
- checkNotNull(uiController);
- checkNotNull(startCoordinates);
- checkNotNull(endCoordinates);
- checkNotNull(precision);
-
- float[][] steps = interpolate(startCoordinates, endCoordinates, SWIPE_EVENT_COUNT);
- final int delayBetweenMovements = duration / steps.length;
-
- MotionEvent downEvent = MotionEvents.sendDown(uiController, steps[0], precision).down;
- try {
- for (int i = 1; i < steps.length; i++) {
- if (!MotionEvents.sendMovement(uiController, downEvent, steps[i])) {
- Log.e(TAG, "Injection of move event as part of the swipe failed. Sending cancel event.");
- MotionEvents.sendCancel(uiController, downEvent);
- return Swiper.Status.FAILURE;
- }
-
- long desiredTime = downEvent.getDownTime() + delayBetweenMovements * i;
- long timeUntilDesired = desiredTime - SystemClock.uptimeMillis();
- if (timeUntilDesired > 10) {
- uiController.loopMainThreadForAtLeast(timeUntilDesired);
- }
- }
-
- if (!MotionEvents.sendUp(uiController, downEvent, endCoordinates)) {
- Log.e(TAG, "Injection of up event as part of the swipe failed. Sending cancel event.");
- MotionEvents.sendCancel(uiController, downEvent);
- return Swiper.Status.FAILURE;
- }
- } finally {
- downEvent.recycle();
- }
- return Swiper.Status.SUCCESS;
- }
-
-}