private void onFinishedAnimation(int newScreen) {

    final int previousScreen = mCurrentScreen;

    final boolean toLeft = newScreen > mCurrentScreen;
    final boolean toRight = newScreen < mCurrentScreen;
    final boolean changed = newScreen != mCurrentScreen;

    mCurrentScreen = newScreen;
    if (mIndicator != null) mIndicator.setLevel(mCurrentScreen, mItemCount);
    setNextSelectedPositionInt(INVALID_SCREEN);

    fillToGalleryRight();
    fillToGalleryLeft();

    if (toLeft) {
      detachOffScreenChildren(true);
    } else if (toRight) {
      detachOffScreenChildren(false);
    }

    if (changed || mItemCount == 1 || true) {

      View child = getChildAt(mCurrentScreen - mFirstPosition);

      if (null != child) {
        if (mAllowChildSelection) {

          if (null != mOldSelectedChild) {
            mOldSelectedChild.setSelected(false);
            mOldSelectedChild = null;
          }

          child.setSelected(true);
          mOldSelectedChild = child;
        }
        child.requestFocus();
      }
    }

    clearChildrenCache();

    if (mOnPageChangeListener != null && newScreen != mPreviousScreen) {
      post(
          new Runnable() {

            @Override
            public void run() {

              if (null != mOnPageChangeListener)
                mOnPageChangeListener.onPageChanged(mCurrentScreen, previousScreen);
            }
          });
    }

    postUpdateIndicator(mCurrentScreen, mItemCount);

    mPreviousScreen = newScreen;
  }
  void setCurrentScreen(int currentScreen) {
    if (LOG_ENABLED) {
      Log.i(LOG_TAG, "setCurrentScreen: " + currentScreen);
    }

    if (!mScroller.isFinished()) mScroller.abortAnimation();
    mCurrentScreen = Math.max(0, Math.min(currentScreen, mItemCount - 1));
    if (mIndicator != null) mIndicator.setLevel(mCurrentScreen, mItemCount);
    scrollTo(mCurrentScreen * getWidth(), 0);
    invalidate();
  }
 public void setIndicator(AviaryWorkspaceIndicator indicator) {
   mIndicator = indicator;
   mIndicator.setLevel(mCurrentScreen, mItemCount);
 }