public boolean continueSettling(boolean deferCallbacks) {
        // Make sure, there is a captured view
        if (mCapturedView == null) {
            return false;
        }
        if (mDragState == STATE_SETTLING) {
            boolean keepGoing = mScroller.computeScrollOffset();
            final int x = mScroller.getCurrX();
            final int y = mScroller.getCurrY();
            final int dx = x - mCapturedView.getLeft();
            final int dy = y - mCapturedView.getTop();

            if(!keepGoing && dy != 0) { //fix #525
                //Invalid drag state
                mCapturedView.setTop(0);
                return true;
            }

            if (dx != 0) {
                mCapturedView.offsetLeftAndRight(dx);
            }
            if (dy != 0) {
                mCapturedView.offsetTopAndBottom(dy);
            }

            if (dx != 0 || dy != 0) {
                mCallback.onViewPositionChanged(mCapturedView, x, y, dx, dy);
            }

            if (keepGoing && x == mScroller.getFinalX() && y == mScroller.getFinalY()) {
                // Close enough. The interpolator/scroller might think we're still moving
                // but the user sure doesn't.
                mScroller.abortAnimation();
                keepGoing = mScroller.isFinished();
            }

            if (!keepGoing) {
                if (deferCallbacks) {
                    mParentView.post(mSetIdleRunnable);
                } else {
                    setDragState(STATE_IDLE);
                }
            }
        }

        return mDragState == STATE_SETTLING;
    }
Move the captured settling view by the appropriate amount for the current time.
If <code>continueSettling</code> returns true, the caller should call it again
on the next frame to continue.

@param deferCallbacks true if state callbacks should be deferred via posted message.
                      Set this to true if you are calling this method from
                      {@link View#computeScroll()} or similar methods
                      invoked as part of layout or drawing.
@return true if settle is still in progress
app/src/main/java/home/smart/fly/animations/widget/slidepanel/ViewDragHelper.java