Fixed a bug where group expansion size calculation was wrong am: 2c58461daf
am: 124fc930d5
* commit '124fc930d54a27c52cfe8aba21130e5b6e8c9674':
Fixed a bug where group expansion size calculation was wrong
This commit is contained in:
@@ -169,21 +169,23 @@ public class DragDownHelper implements Gefingerpoken {
|
||||
? RUBBERBAND_FACTOR_EXPANDABLE
|
||||
: RUBBERBAND_FACTOR_STATIC;
|
||||
float rubberband = heightDelta * rubberbandFactor;
|
||||
if (expandable && (rubberband + child.getMinHeight()) > child.getMaxContentHeight()) {
|
||||
float overshoot = (rubberband + child.getMinHeight()) - child.getMaxContentHeight();
|
||||
if (expandable
|
||||
&& (rubberband + child.getMinExpandHeight()) > child.getMaxContentHeight()) {
|
||||
float overshoot =
|
||||
(rubberband + child.getMinExpandHeight()) - child.getMaxContentHeight();
|
||||
overshoot *= (1 - RUBBERBAND_FACTOR_STATIC);
|
||||
rubberband -= overshoot;
|
||||
}
|
||||
child.setActualHeight((int) (child.getMinHeight() + rubberband));
|
||||
child.setActualHeight((int) (child.getMinExpandHeight() + rubberband));
|
||||
}
|
||||
|
||||
private void cancelExpansion(final ExpandableView child) {
|
||||
if (child.getActualHeight() == child.getMinHeight()) {
|
||||
if (child.getActualHeight() == child.getMinExpandHeight()) {
|
||||
mCallback.setUserLockedChild(child, false);
|
||||
return;
|
||||
}
|
||||
ObjectAnimator anim = ObjectAnimator.ofInt(child, "actualHeight",
|
||||
child.getActualHeight(), child.getMinHeight());
|
||||
child.getActualHeight(), child.getMinExpandHeight());
|
||||
anim.setInterpolator(Interpolators.FAST_OUT_SLOW_IN);
|
||||
anim.setDuration(SPRING_BACK_ANIMATION_LENGTH_MS);
|
||||
anim.addListener(new AnimatorListenerAdapter() {
|
||||
|
||||
@@ -1221,8 +1221,8 @@ public class ExpandableNotificationRow extends ActivatableNotificationView {
|
||||
|
||||
@Override
|
||||
public int getMinExpandHeight() {
|
||||
if (mIsSummaryWithChildren && !mOnKeyguard) {
|
||||
return mChildrenContainer.getMinExpandHeight();
|
||||
if (mIsSummaryWithChildren && !mShowingPublic) {
|
||||
return mChildrenContainer.getMinExpandHeight(mOnKeyguard);
|
||||
}
|
||||
return getMinHeight();
|
||||
}
|
||||
|
||||
@@ -566,8 +566,28 @@ public class NotificationChildrenContainer extends ViewGroup {
|
||||
return getIntrinsicHeight(NUMBER_OF_CHILDREN_WHEN_COLLAPSED);
|
||||
}
|
||||
|
||||
public int getMinExpandHeight() {
|
||||
return getIntrinsicHeight(getMaxAllowedVisibleChildren(true /* forceCollapsed */));
|
||||
public int getMinExpandHeight(boolean onKeyguard) {
|
||||
int maxAllowedVisibleChildren = onKeyguard ? NUMBER_OF_CHILDREN_WHEN_COLLAPSED
|
||||
: getMaxAllowedVisibleChildren(true /* forceCollapsed */);
|
||||
int minExpandHeight = mNotificationHeaderHeight;
|
||||
int visibleChildren = 0;
|
||||
boolean firstChild = true;
|
||||
int childCount = mChildren.size();
|
||||
for (int i = 0; i < childCount; i++) {
|
||||
if (visibleChildren >= maxAllowedVisibleChildren) {
|
||||
break;
|
||||
}
|
||||
if (!firstChild) {
|
||||
minExpandHeight += mChildPadding;
|
||||
} else {
|
||||
firstChild = false;
|
||||
}
|
||||
ExpandableNotificationRow child = mChildren.get(i);
|
||||
minExpandHeight += child.getMinHeight();
|
||||
visibleChildren++;
|
||||
}
|
||||
minExpandHeight += mCollapsedBottompadding;
|
||||
return minExpandHeight;
|
||||
}
|
||||
|
||||
public void setDark(boolean dark, boolean fade, long delay) {
|
||||
|
||||
Reference in New Issue
Block a user