diff options
Diffstat (limited to 'java/src')
-rw-r--r-- | java/src/com/android/intentresolver/widget/ResolverDrawerLayout.java | 37 |
1 files changed, 18 insertions, 19 deletions
diff --git a/java/src/com/android/intentresolver/widget/ResolverDrawerLayout.java b/java/src/com/android/intentresolver/widget/ResolverDrawerLayout.java index a2c5afc6..f5e20510 100644 --- a/java/src/com/android/intentresolver/widget/ResolverDrawerLayout.java +++ b/java/src/com/android/intentresolver/widget/ResolverDrawerLayout.java @@ -89,8 +89,8 @@ public class ResolverDrawerLayout extends ViewGroup { * out of sync due to frequently dropping fractions of a pixel from '(int) dy' casts. */ private float mDragRemainder = 0.0f; + private int mHeightUsed; private int mCollapsibleHeight; - private int mUncollapsibleHeight; private int mAlwaysShowHeight; /** @@ -244,9 +244,7 @@ public class ResolverDrawerLayout extends ViewGroup { mLastTouchY -= dReserved; } - final int oldCollapsibleHeight = mCollapsibleHeight; - mCollapsibleHeight = Math.min(mCollapsibleHeight, getMaxCollapsedHeight()); - + final int oldCollapsibleHeight = updateCollapsibleHeight(); if (updateCollapseOffset(oldCollapsibleHeight, !isDragging())) { return; } @@ -485,7 +483,7 @@ public class ResolverDrawerLayout extends ViewGroup { } else { if (isDismissable() && yvel > 0 && mCollapseOffset > mCollapsibleHeight) { - smoothScrollTo(mCollapsibleHeight + mUncollapsibleHeight, yvel); + smoothScrollTo(mHeightUsed, yvel); mDismissOnScrollerFinished = true; } else { scrollNestedScrollableChildBackToTop(); @@ -575,8 +573,7 @@ public class ResolverDrawerLayout extends ViewGroup { return 0; } - final float newPos = Math.max(0, Math.min(mCollapseOffset + dy, - mCollapsibleHeight + mUncollapsibleHeight)); + final float newPos = Math.max(0, Math.min(mCollapseOffset + dy, mHeightUsed)); if (newPos != mCollapseOffset) { dy = newPos - mCollapseOffset; @@ -855,7 +852,7 @@ public class ResolverDrawerLayout extends ViewGroup { } else { if (isDismissable() && velocityY < 0 && mCollapseOffset > mCollapsibleHeight) { - smoothScrollTo(mCollapsibleHeight + mUncollapsibleHeight, velocityY); + smoothScrollTo(mHeightUsed, velocityY); mDismissOnScrollerFinished = true; } else { smoothScrollTo(velocityY > 0 ? 0 : mCollapsibleHeight, velocityY); @@ -883,9 +880,8 @@ public class ResolverDrawerLayout extends ViewGroup { } break; case AccessibilityNodeInfo.ACTION_DISMISS: - if ((mCollapseOffset < mCollapsibleHeight + mUncollapsibleHeight) - && isDismissable()) { - smoothScrollTo(mCollapsibleHeight + mUncollapsibleHeight, 0); + if ((mCollapseOffset < mHeightUsed) && isDismissable()) { + smoothScrollTo(mHeightUsed, 0); mDismissOnScrollerFinished = true; return true; } @@ -923,7 +919,7 @@ public class ResolverDrawerLayout extends ViewGroup { info.addAction(AccessibilityAction.ACTION_SCROLL_DOWN); info.setScrollable(true); } - if ((mCollapseOffset < mCollapsibleHeight + mUncollapsibleHeight) + if ((mCollapseOffset < mHeightUsed) && ((mCollapseOffset < mCollapsibleHeight) || isDismissable())) { info.addAction(AccessibilityAction.ACTION_SCROLL_UP); info.setScrollable(true); @@ -931,7 +927,7 @@ public class ResolverDrawerLayout extends ViewGroup { if (mCollapseOffset < mCollapsibleHeight) { info.addAction(AccessibilityAction.ACTION_COLLAPSE); } - if (mCollapseOffset < mCollapsibleHeight + mUncollapsibleHeight && isDismissable()) { + if (mCollapseOffset < mHeightUsed && isDismissable()) { info.addAction(AccessibilityAction.ACTION_DISMISS); } } @@ -1022,22 +1018,25 @@ public class ResolverDrawerLayout extends ViewGroup { } } - final int oldCollapsibleHeight = mCollapsibleHeight; - mCollapsibleHeight = Math.max(0, - heightUsed - mAlwaysShowHeight - getMaxCollapsedHeight()); - mUncollapsibleHeight = heightUsed - mCollapsibleHeight; - + mHeightUsed = heightUsed; + int oldCollapsibleHeight = updateCollapsibleHeight(); updateCollapseOffset(oldCollapsibleHeight, !isDragging()); if (getShowAtTop()) { mTopOffset = 0; } else { - mTopOffset = Math.max(0, heightSize - heightUsed) + (int) mCollapseOffset; + mTopOffset = Math.max(0, heightSize - mHeightUsed) + (int) mCollapseOffset; } setMeasuredDimension(sourceWidth, heightSize); } + private int updateCollapsibleHeight() { + final int oldCollapsibleHeight = mCollapsibleHeight; + mCollapsibleHeight = Math.max(0, mHeightUsed - mAlwaysShowHeight - getMaxCollapsedHeight()); + return oldCollapsibleHeight; + } + /** * @return The space reserved by views with 'alwaysShow=true' */ |