private boolean forceSettleCapturedViewAt(int finalLeft, int finalTop, int xvel, int yvel) {
        final int startLeft = mCapturedView.getLeft();
        final int startTop = mCapturedView.getTop();
        final int dx = finalLeft - startLeft;
        final int dy = finalTop - startTop;

        if (dx == 0 && dy == 0) {
            // Nothing to do. Send callbacks, be done.
            mScroller.abortAnimation();
            setDragState(STATE_IDLE);
            return false;
        }

        final int duration = computeSettleDuration(mCapturedView, dx, dy, xvel, yvel);
        mScroller.startScroll(startLeft, startTop, dx, dy, duration);

        setDragState(STATE_SETTLING);
        return true;
    }
Settle the captured view at the given (left, top) position.

@param finalLeft Target left position for the captured view
@param finalTop Target top position for the captured view
@param xvel Horizontal velocity
@param yvel Vertical velocity
@return true if animation should continue through {@link #continueSettling(boolean)} calls
app/src/main/java/home/smart/fly/animations/widget/slidepanel/ViewDragHelper.java