diff options
2 files changed, 26 insertions, 17 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java index 9390c81a847b..2c2a17001326 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/stack/NotificationStackScrollLayout.java @@ -2097,11 +2097,13 @@ public class NotificationStackScrollLayout extends ViewGroup implements Dumpable if (height != 0) { height += mPaddingBetweenElements; } - height += calculateGapHeight(previousView, expandableView, numShownItems); + float gapHeight = calculateGapHeight(previousView, expandableView, numShownNotifs); + height += gapHeight; height += viewHeight; numShownItems++; - if (!(expandableView instanceof MediaHeaderView)) { + if (viewHeight > 0 || !(expandableView instanceof MediaHeaderView)) { + // Only count the media as a notification if it has a positive height. numShownNotifs++; } previousView = expandableView; diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java index fda24c17990b..e2d64b09aee9 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java @@ -139,6 +139,7 @@ import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow import com.android.systemui.statusbar.notification.row.ExpandableView; import com.android.systemui.statusbar.notification.stack.AmbientState; import com.android.systemui.statusbar.notification.stack.AnimationProperties; +import com.android.systemui.statusbar.notification.stack.MediaHeaderView; import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayout; import com.android.systemui.statusbar.notification.stack.NotificationStackScrollLayoutController; import com.android.systemui.statusbar.notification.stack.StackStateAnimator; @@ -1325,21 +1326,27 @@ public class NotificationPanelViewController extends PanelViewController { ExpandableView previousView = null; for (int i = 0; i < mNotificationStackScrollLayoutController.getChildCount(); i++) { ExpandableView child = mNotificationStackScrollLayoutController.getChildAt(i); - if (!(child instanceof ExpandableNotificationRow)) { - continue; - } - ExpandableNotificationRow row = (ExpandableNotificationRow) child; - boolean - suppressedSummary = - mGroupManager != null && mGroupManager.isSummaryOfSuppressedGroup( - row.getEntry().getSbn()); - if (suppressedSummary) { - continue; - } - if (!canShowViewOnLockscreen(child)) { - continue; - } - if (row.isRemoved()) { + if (child instanceof ExpandableNotificationRow) { + ExpandableNotificationRow row = (ExpandableNotificationRow) child; + boolean suppressedSummary = mGroupManager != null + && mGroupManager.isSummaryOfSuppressedGroup(row.getEntry().getSbn()); + if (suppressedSummary) { + continue; + } + if (!canShowViewOnLockscreen(child)) { + continue; + } + if (row.isRemoved()) { + continue; + } + } else if (child instanceof MediaHeaderView) { + if (child.getVisibility() == GONE) { + continue; + } + if (child.getIntrinsicHeight() == 0) { + continue; + } + } else { continue; } availableSpace -= child.getMinHeight(true /* ignoreTemporaryStates */); |