package it.sephiroth.android.library.bottomnavigation; import android.support.test.espresso.UiController; import android.support.test.espresso.ViewAction; import android.support.v7.widget.RecyclerView; 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; /** * Created by crugnola on 4/12/16. */ public class RecyclerViewActionsCompat { public static <VH extends RecyclerView.ViewHolder> ViewAction smoothScrollToPosition(final int position) { return new SmoothScrollToPositionViewAction(position); } private static final class SmoothScrollToPositionViewAction implements ViewAction { private final int position; private SmoothScrollToPositionViewAction(int position) { this.position = position; } @SuppressWarnings ("unchecked") @Override public Matcher<View> getConstraints() { return allOf(isAssignableFrom(RecyclerView.class), isDisplayed()); } @Override public String getDescription() { return "scroll RecyclerView to position: " + position; } @Override public void perform(UiController uiController, View view) { RecyclerView recyclerView = (RecyclerView) view; recyclerView.smoothScrollToPosition(position); } } }