Do not count suppressed group summaries when checking for notifications.

This fixes a bug where a group summary of a bubble (which may not itself be a bubble) is counted as a notification for the purposes of determining if the "Clear All" button (or footer generally) should be shown, even though that notification is not shown or counted when determining if the empty shade view should be displayed.

Fixes: 195822405
Test: NotificationStackScrollerControllerTest
Test: Clear all notifications, go/use-bubbles, post 4 bubbles, read all 4 bubbles, expand shade
Change-Id: I080d5c5ab6f6f48d9dd0f3e46ba48da4ca1e6e60
This commit is contained in:
Jeff DeCew
2021-09-23 16:05:12 -04:00
parent 6ea42dcf9f
commit a18fcc15ea

View File

@@ -171,6 +171,7 @@ public class NotificationStackScrollLayoutController {
private final NotificationLockscreenUserManager mLockscreenUserManager;
// TODO: StatusBar should be encapsulated behind a Controller
private final StatusBar mStatusBar;
private final NotificationGroupManagerLegacy mLegacyGroupManager;
private final SectionHeaderController mSilentHeaderController;
private final LockscreenShadeTransitionController mLockscreenShadeTransitionController;
@@ -651,6 +652,8 @@ public class NotificationStackScrollLayoutController {
mStatusBar.requestNotificationUpdate("onGroupsChanged");
}
});
mLegacyGroupManager = featureFlags.isNewNotifPipelineRenderingEnabled()
? null : legacyGroupManager;
mSilentHeaderController = silentHeaderController;
mFeatureFlags = featureFlags;
mNotifPipeline = notifPipeline;
@@ -1193,7 +1196,11 @@ public class NotificationStackScrollLayoutController {
final boolean inSection =
NotificationStackScrollLayout.matchesSelection(row, selection);
if (matchClearable && inSection) {
return true;
if (mLegacyGroupManager == null
|| !mLegacyGroupManager.isSummaryOfSuppressedGroup(
row.getEntry().getSbn())) {
return true;
}
}
}
return false;