From 7355a4e1a7d03715451501f43ae06b1597ea597d Mon Sep 17 00:00:00 2001 From: Brian Attwell Date: Fri, 26 Sep 2014 17:16:20 -0700 Subject: Don't forget header momentum upon scroll events Fixes another easy problem with Dialer's nested scrolling. Sometimes onStopNestedScroll causes the momentum in a header fling not to transfer to the ListView. Bug: 16462679 Change-Id: I9ac8af11dc4799c5a5acd68de89e988fdc479113 --- src/com/android/dialer/widget/OverlappingPaneLayout.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/com/android/dialer/widget/OverlappingPaneLayout.java b/src/com/android/dialer/widget/OverlappingPaneLayout.java index b81722942..ad18b1486 100644 --- a/src/com/android/dialer/widget/OverlappingPaneLayout.java +++ b/src/com/android/dialer/widget/OverlappingPaneLayout.java @@ -988,7 +988,7 @@ public class OverlappingPaneLayout extends ViewGroup { if (DEBUG) { Log.d(TAG, "onStopNestedScroll"); } - if (mIsInNestedScroll) { + if (mIsInNestedScroll && !mIsInNestedFling) { mDragHelper.stopNestedScroll(mSlideableView); mInNestedPreScrollDownwards = false; mInNestedPreScrollUpwards = false; @@ -1024,7 +1024,8 @@ public class OverlappingPaneLayout extends ViewGroup { } } - if (mDragHelper.getVelocityMagnitude() > 0 + if (state == ViewDragHelper.STATE_IDLE + && mDragHelper.getVelocityMagnitude() > 0 && (mDragHelper.getCurrentScrollY() == 0 || mDragHelper.getCurrentScrollY() == mIntermediateOffset) && mIsInNestedFling) { @@ -1099,6 +1100,7 @@ public class OverlappingPaneLayout extends ViewGroup { public void onViewReleased(View releasedChild, float xvel, float yvel) { if (DEBUG) { Log.d(TAG, "onViewReleased: " + + " mIsInNestedFling=" + mIsInNestedFling + " unscrolled=" + mPanelSlideCallbacks.isScrollableChildUnscrolled() + ", mInNestedPreScrollDownwards = " + mInNestedPreScrollDownwards + ", mInNestedPreScrollUpwards = " + mInNestedPreScrollUpwards -- cgit v1.2.3