package com.beloo.widget.chipslayoutmanager.util; import android.support.test.espresso.UiController; import android.support.test.espresso.ViewAction; import android.view.View; import org.hamcrest.Matcher; import static android.support.test.espresso.matcher.ViewMatchers.isAssignableFrom; import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed; import static org.hamcrest.Matchers.allOf; public abstract class Action<T extends View> implements ViewAction { @Override public Matcher<View> getConstraints() { return allOf(isAssignableFrom(View.class), isDisplayed()); } @Override public String getDescription() { return "action " + this.getClass().getSimpleName(); } @Override public final void perform(UiController uiController, View view) { performAction(uiController, (T) view); } public abstract void performAction(UiController uiController, T view); }