@Override public void perform(UiController uiController, View view) { ViewPager pager = (ViewPager) view; int pagerLength = pager.getAdapter().getCount(); if (mNumSwipes != -1) { pagerLength = Math.min(pagerLength, mNumSwipes); } for (int x = 1; x < pagerLength; x++) { switch (mDirection) { case LEFT: pager.setCurrentItem(pagerLength - (x + 1), true); uiController.loopMainThreadUntilIdle(); // If you'd like the ViewPager to pause // on each swipe for human inspection // replace loopMainThreadUntilIdle // with: // uiController.loopMainThreadForAtLeast(200); break; case RIGHT: pager.setCurrentItem(x, true); uiController.loopMainThreadUntilIdle(); // uiController.loopMainThreadForAtLeast(200); break; } } }