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:
Selim Cinek
2016-03-01 00:48:19 +00:00
committed by android-build-merger
3 changed files with 31 additions and 9 deletions

View File

@@ -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() {

View File

@@ -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();
}

View File

@@ -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) {