Merge "Fixed a bug where the scrollrange was calculated wrong" into nyc-dev

This commit is contained in:
Selim Cinek
2016-04-06 20:45:17 +00:00
committed by Android (Google) Code Review

View File

@@ -918,7 +918,7 @@ public class NotificationStackScrollLayout extends ViewGroup
int positionInLinearLayout = getPositionInLinearLayout(v);
int targetScroll = positionInLinearLayout + expandableView.getActualHeight() +
mBottomInset - getHeight() + getTopPadding();
getImeInset() - getHeight() + getTopPadding();
if (mOwnScrollY < targetScroll) {
mScroller.startScroll(mScrollX, mOwnScrollY, 0, targetScroll - mOwnScrollY);
mDontReportNextOverScroll = true;
@@ -928,8 +928,7 @@ public class NotificationStackScrollLayout extends ViewGroup
@Override
public WindowInsets onApplyWindowInsets(WindowInsets insets) {
mBottomInset = Math.max(0, insets.getSystemWindowInsetBottom()
- (getRootView().getHeight() - getHeight()));
mBottomInset = insets.getSystemWindowInsetBottom();
int range = getScrollRange();
if (mOwnScrollY > range) {
@@ -1498,23 +1497,17 @@ public class NotificationStackScrollLayout extends ViewGroup
}
private int getScrollRange() {
int scrollRange = 0;
ExpandableView firstChild = (ExpandableView) getFirstChildNotGone();
if (firstChild != null) {
int contentHeight = getContentHeight();
scrollRange = Math.max(0, contentHeight - mMaxLayoutHeight + mBottomStackPeekSize
+ mBottomStackSlowDownHeight);
if (scrollRange > 0) {
int firstChildMaxExpandHeight = getMaxExpandHeight(firstChild);
// We want to at least be able collapse the first item and not ending in a weird
// end state.
scrollRange = Math.max(scrollRange, firstChildMaxExpandHeight
- firstChild.getMinHeight());
}
}
int imeOverlap = Math.max(0,
getContentHeight() - (getHeight() - mBottomInset));
return scrollRange + imeOverlap;
int contentHeight = getContentHeight();
int scrollRange = Math.max(0, contentHeight - mMaxLayoutHeight + mBottomStackPeekSize
+ mBottomStackSlowDownHeight);
int imeInset = getImeInset();
scrollRange += Math.min(imeInset, Math.max(0,
getContentHeight() - (getHeight() - imeInset)));
return scrollRange;
}
private int getImeInset() {
return Math.max(0, mBottomInset - (getRootView().getHeight() - getHeight()));
}
/**