code: public void endFakeDrag() {
          if (!mFakeDragging) {
              throw new IllegalStateException("No fake drag in progress. Call beginFakeDrag first.");
          }
  
          final VelocityTracker velocityTracker = mVelocityTracker;
          velocityTracker.computeCurrentVelocity(1000, mMaximumVelocity);
          int initialVelocity = (int) VelocityTrackerCompat.getYVelocity(
                  velocityTracker, mActivePointerId);
          mPopulatePending = true;
          final int height = getClientHeight();
          final int scrollY = getScrollY();
          final ItemInfo ii = infoForCurrentScrollPosition();
          final int currentPage = ii.position;
          final float pageOffset = (((float) scrollY / height) - ii.offset) / ii.heightFactor;
          final int totalDelta = (int) (mLastMotionY - mInitialMotionY);
          int nextPage = determineTargetPage(currentPage, pageOffset, initialVelocity,
                  totalDelta);
          setCurrentItemInternal(nextPage, true, true, initialVelocity);
          endDrag();
  
          mFakeDragging = false;
      }
docs: End a fake drag of the pager.
  
  @see #beginFakeDrag()
  @see #fakeDragBy(float)