Don't show "Clear All" w/ redacted notifs
The logic that determined when to show the Clear All Silent button in the Silent notification header was occurring when the Silent (and Minimized) sections update. At this time, there was no up-to-date information about whether or not the notification has senstive content (SensitiveContentCoordinator occurs later in the pipeline), and no information about whether or not sensitive content can even be shown or must be redacted (handled by NotificationStackScrollLayoutController). Additionally, the visibility of the Clear All button in the shade footer wasn't being adjusted at all under the new pipeline. To remedy this, the following changes were made in this CL: 1. `boolean NotificationEntry#isSensitive()` has been dismantled. Rather than relying on some separate code to properly set this value at some point, instead the concept of "Sensitive Content" is derived directly from the SBN + Ranking, and is kept separate from the state of the user's settings, as well as the state of the lockscreen (whether we would currently need to redact). 2. NotificationLockscreenUserMananger is the de-facto place for tracking and querying redaction state. This includes checking if the user's settings *would* require redaction (#needsRedactionInPublic), and whether a user is actually public (#isLockscreenPublicMode). 3. In order to keep clients in sync, a new observable interface is exposed on NotificationLockscreenUserManager that clients can use to be notified when to requery #needsRedactionInPublic, due to user settings changes. This replaces NotificationEntry#OnSensitivityChangedListener 4. SensitiveContentCoordinator has been removed entirely; the pipeline no longer needs to invoke NotificationEntry#setSenstive, since it no longer exists. 5. NotifStats has been updated to include additional information extracted from the NotifCollection necessary to dynamically query for redaction in the View layer, without needed to re-process the entire list; specifically, we track a Set of users that currently have sensitive notifications in the shade. This set is tested against the user's settings (tracked separately from the pipeline in NotifLockscreenUserManager). Test: atest Test: 1. Turn on notification redaction (no sensitive contents on lockscreen) 2. Receive a silent sensitive notification 3. Lock the device 4. Double tap camera 5. expand shade Observe: Clear all hidden in footer and in silent header Fixes: 213443266 Fixes: 230581048 Change-Id: Ibc66576d28a48f7c82cad875ed2dcb57a7b23f10 Merged-In: Ibc66576d28a48f7c82cad875ed2dcb57a7b23f10
Loading
Please register or sign in to comment