Ejemplo n.º 1
0
  /** Callback when each frame in the peek drawer animation should be drawn. */
  @SuppressLint("NewApi")
  private void peekDrawerInvalidate() {
    if (mPeekScroller.computeScrollOffset()) {
      final int oldX = (int) mOffsetPixels;
      final int x = mPeekScroller.getCurrX();
      if (x != oldX) {
        setOffsetPixels(x);
      }

      if (!mPeekScroller.isFinished()) {
        postOnAnimation(mPeekRunnable);
        return;

      } else if (mPeekDelay > 0) {
        mPeekStartRunnable =
            new Runnable() {
              @Override
              public void run() {
                startPeek();
              }
            };
        postDelayed(mPeekStartRunnable, mPeekDelay);
      }
    }

    completePeek();
  }
  /** Callback when each frame in the drawer animation should be drawn. */
  private void postAnimationInvalidate() {
    if (mScroller.computeScrollOffset(false)) {
      final int oldX = (int) mOffsetPixels;
      final int x = mScroller.getCurrX();

      if (x != oldX) setOffsetPixels(x);
      if (x != mScroller.getFinalX()) {
        postOnAnimation(mDragRunnable);
        return;
      }
    }

    completeAnimation();
  }
  /** Callback when each frame in the peek drawer animation should be drawn. */
  private void peekDrawerInvalidate() {

    boolean holdPeek;

    if (mPeekDelay < 0) holdPeek = true;
    else holdPeek = false;

    if (mPeekScroller.computeScrollOffset(holdPeek)) {
      final int oldX = (int) mOffsetPixels;
      final int x = mPeekScroller.getCurrX();

      if (x != oldX) setOffsetPixels(x);

      if (!mPeekScroller.isFinished()) {

        // Log.e("DraggableDrawer", "mPeekScroller is not finished");

        postOnAnimation(mPeekRunnable);
        return;

      } else if (mPeekDelay > 0) {

        // Log.e("DraggableDrawer", "mPeekScroller is finished");

        mPeekStartRunnable =
            new Runnable() {
              @Override
              public void run() {
                startPeek();
              }
            };
        if (mPeekDelay >= 0) postDelayed(mPeekStartRunnable, mPeekDelay);
        // else
        // postDelayed(mPeekStartRunnable, 1000);
      }
    }

    if (mPeekDelay > 0) completePeek();
  }