diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java index 7fe7f399f123c..8fa904e10b4a4 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java @@ -2024,14 +2024,15 @@ public class ExpandableNotificationRow extends ActivatableNotificationView } @Override - public int getMinHeight() { - if (mGuts != null && mGuts.isExposed()) { + public int getMinHeight(boolean ignoreTemporaryStates) { + if (!ignoreTemporaryStates && mGuts != null && mGuts.isExposed()) { return mGuts.getIntrinsicHeight(); - } else if (isHeadsUpAllowed() && mIsHeadsUp && mHeadsUpManager.isTrackingHeadsUp()) { + } else if (!ignoreTemporaryStates && isHeadsUpAllowed() && mIsHeadsUp + && mHeadsUpManager.isTrackingHeadsUp()) { return getPinnedHeadsUpHeight(false /* atLeastMinHeight */); } else if (mIsSummaryWithChildren && !isGroupExpanded() && !mShowingPublic) { return mChildrenContainer.getMinHeight(); - } else if (isHeadsUpAllowed() && mIsHeadsUp) { + } else if (!ignoreTemporaryStates && isHeadsUpAllowed() && mIsHeadsUp) { return mHeadsUpHeight; } NotificationContentView showingLayout = getShowingLayout(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java index efe5e0c2ade48..aac9af8a0234e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableView.java @@ -151,9 +151,21 @@ public abstract class ExpandableView extends FrameLayout { } /** - * @return The minimum content height of this notification. + * @return The minimum content height of this notification. This also respects the temporary + * states of the view. */ public int getMinHeight() { + return getMinHeight(false /* ignoreTemporaryStates */); + } + + /** + * Get the minimum height of this view. + * + * @param ignoreTemporaryStates should temporary states be ignored like the guts or heads-up. + * + * @return The minimum height that this view needs. + */ + public int getMinHeight(boolean ignoreTemporaryStates) { return getHeight(); } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java index 078e8189f5b32..c19161839998e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java @@ -509,7 +509,8 @@ public class NotificationPanelView extends PanelView implements if (row.isRemoved()) { continue; } - availableSpace -= child.getMinHeight() + notificationPadding; + availableSpace -= child.getMinHeight(true /* ignoreTemporaryStates */) + + notificationPadding; if (availableSpace >= 0 && count < maximum) { count++; } else if (availableSpace > -shelfSize) {