Update mIsBeingDragged in onTouchEvent(ACTION_DOWN)

am: a0aee21fcd

Change-Id: I4e0b6c7e057421d7501f84f8c8e3544eab2b15de
This commit is contained in:
Tony Wickham
2019-09-18 12:22:12 -07:00
committed by android-build-merger

View File

@@ -890,23 +890,7 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou
mTotalMotionX = 0;
mActivePointerId = ev.getPointerId(0);
/*
* If being flinged and user touches the screen, initiate drag;
* otherwise don't. mScroller.isFinished should be false when
* being flinged.
*/
final int xDist = Math.abs(mScroller.getFinalPos() - mScroller.getCurrPos());
final boolean finishedScrolling = (mScroller.isFinished() || xDist < mTouchSlop / 3);
if (finishedScrolling) {
mIsBeingDragged = false;
if (!mScroller.isFinished() && !mFreeScroll) {
setCurrentPage(getNextPage());
pageEndTransition();
}
} else {
mIsBeingDragged = true;
}
updateIsBeingDraggedOnTouchDown();
break;
}
@@ -929,6 +913,25 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou
return mIsBeingDragged;
}
/**
* If being flinged and user touches the screen, initiate drag; otherwise don't.
*/
private void updateIsBeingDraggedOnTouchDown() {
// mScroller.isFinished should be false when being flinged.
final int xDist = Math.abs(mScroller.getFinalPos() - mScroller.getCurrPos());
final boolean finishedScrolling = (mScroller.isFinished() || xDist < mTouchSlop / 3);
if (finishedScrolling) {
mIsBeingDragged = false;
if (!mScroller.isFinished() && !mFreeScroll) {
setCurrentPage(getNextPage());
pageEndTransition();
}
} else {
mIsBeingDragged = true;
}
}
public boolean isHandlingTouch() {
return mIsBeingDragged;
}
@@ -1104,6 +1107,8 @@ public abstract class PagedView<T extends View & PageIndicator> extends ViewGrou
switch (action & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
updateIsBeingDraggedOnTouchDown();
/*
* If being flinged and user touches, stop the fling. isFinished
* will be false if being flinged.