package com.mindbodyonline.ironhide.Infrastructure.Extensions; import android.support.test.espresso.UiController; import android.view.MotionEvent; /** * Interface to implement different zoom types. */ public interface Zoomer { /** * The result of the zoom. */ public enum Status { /** * The zoom action completed successfully. */ SUCCESS, /** * Injecting the event was a complete failure. */ FAILURE } /** * Zooms from {@code startCoordinates} to {@code endCoordinates} using the given * {@code uiController} to send {@link MotionEvent}s. * * @param uiController a UiController to use to send MotionEvents to the screen. * @param startCoordinates a float[][] with x and y co-ordinates of the two starts of the zoom. * @param endCoordinates a float[][] with x and y co-ordinates of the two ends of the zoom. * @param precision a float[] with x and y values of precision of the tap. * @return The status of the zoom. */ public Status sendZoom(UiController uiController, float[][] startCoordinates, float[][] endCoordinates, float[] precision); }