question: public void drag ( long time , float x , float y , float deltaX , float deltaY , float totalX , float totalY ) { resetResizeTimeout ( false ) ; deltaX = MathUtils . flipSignIf ( deltaX , LocalizationUtils . isLayoutRtl ( ) ) ; mNewTabButton . drag ( x , y ) ; if ( mLastPressedCloseButton != null ) { if ( ! mLastPressedCloseButton . drag ( x , y ) ) mLastPressedCloseButton = null ; } if ( mInReorderMode ) { float accumulatedDeltaX = x - mLastReorderX ; if ( Math . abs ( accumulatedDeltaX ) >= 1.f ) { if ( ! LocalizationUtils . isLayoutRtl ( ) ) { if ( deltaX >= 1.f ) { mReorderState |= REORDER_SCROLL_RIGHT ; } else if ( deltaX <= - 1.f ) { mReorderState |= REORDER_SCROLL_LEFT ; } } else { if ( deltaX >= 1.f ) { mReorderState |= REORDER_SCROLL_LEFT ; } else if ( deltaX <= - 1.f ) { mReorderState |= REORDER_SCROLL_RIGHT ; } } mLastReorderX = x ; updateReorderPosition ( accumulatedDeltaX ) ; } } else if ( ! mScroller . isFinished ( ) ) { mScroller . setFinalX ( ( int ) ( mScroller . getFinalX ( ) + deltaX ) ) ; } else { float fastExpandDelta = calculateOffsetToMakeTabVisible ( mInteractingTab , true , true , true ) ; if ( mInteractingTab != null && fastExpandDelta != 0.f ) { if ( ( fastExpandDelta > 0 && deltaX > 0 ) || ( fastExpandDelta < 0 && deltaX < 0 ) ) { mScroller . startScroll ( mScrollOffset , 0 , ( int ) fastExpandDelta , 0 , time , EXPAND_DURATION_MS ) ; } } else { updateScrollOffsetPosition ( ( int ) ( mScrollOffset + deltaX ) ) ; } } if ( ! mInReorderMode ) { final float absTotalX = Math . abs ( totalX ) ; final float absTotalY = Math . abs ( totalY ) ; if ( totalY > mReorderMoveStartThreshold && absTotalX < mReorderMoveStartThreshold * 2.f && ( absTotalX > EPSILON && ( absTotalY / absTotalX ) > TAN_OF_REORDER_ANGLE_START_THRESHOLD ) ) { startReorderMode ( time , x , x - totalX ) ; } } if ( ! mInReorderMode ) mInteractingTab = null ; mUpdateHost . requestUpdate ( ) ; }
target:  Called on touch drag event.