Merge "New Pipeline: hide VISIBILITY_SECRET notifications on lock screen" into tm-qpr-dev
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.android.systemui.statusbar.notification.interruption
|
||||
|
||||
import android.app.Notification
|
||||
import android.app.Notification.VISIBILITY_SECRET
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
@@ -172,6 +173,8 @@ private class KeyguardNotificationVisibilityProviderImpl @Inject constructor(
|
||||
!lockscreenUserManager.shouldShowLockscreenNotifications() -> true
|
||||
// User settings do not allow this notification on the lockscreen, so hide it.
|
||||
userSettingsDisallowNotification(entry) -> true
|
||||
// Entry is explicitly marked SECRET, so hide it.
|
||||
entry.sbn.notification.visibility == VISIBILITY_SECRET -> true
|
||||
// if entry is silent, apply custom logic to see if should hide
|
||||
shouldHideIfEntrySilent(entry) -> true
|
||||
else -> false
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
|
||||
package com.android.systemui.statusbar.notification.interruption;
|
||||
|
||||
import static android.app.Notification.VISIBILITY_PRIVATE;
|
||||
import static android.app.Notification.VISIBILITY_PUBLIC;
|
||||
import static android.app.Notification.VISIBILITY_SECRET;
|
||||
import static android.app.NotificationManager.IMPORTANCE_HIGH;
|
||||
@@ -448,6 +449,54 @@ public class KeyguardNotificationVisibilityProviderTest extends SysuiTestCase {
|
||||
assertFalse(mKeyguardNotificationVisibilityProvider.shouldHideNotification(mEntry));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void notificationVisibilityPublic() {
|
||||
// GIVEN a VISIBILITY_PUBLIC notification
|
||||
NotificationEntryBuilder entryBuilder = new NotificationEntryBuilder()
|
||||
.setUser(new UserHandle(NOTIF_USER_ID));
|
||||
entryBuilder.modifyNotification(mContext)
|
||||
.setVisibility(VISIBILITY_PUBLIC);
|
||||
mEntry = entryBuilder.build();
|
||||
|
||||
// WHEN we're in an 'unfiltered-keyguard-showing' state
|
||||
setupUnfilteredState(mEntry);
|
||||
|
||||
// THEN don't hide the entry based on visibility.
|
||||
assertFalse(mKeyguardNotificationVisibilityProvider.shouldHideNotification(mEntry));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void notificationVisibilityPrivate() {
|
||||
// GIVEN a VISIBILITY_PRIVATE notification
|
||||
NotificationEntryBuilder entryBuilder = new NotificationEntryBuilder()
|
||||
.setUser(new UserHandle(NOTIF_USER_ID));
|
||||
entryBuilder.modifyNotification(mContext)
|
||||
.setVisibility(VISIBILITY_PRIVATE);
|
||||
mEntry = entryBuilder.build();
|
||||
|
||||
// WHEN we're in an 'unfiltered-keyguard-showing' state
|
||||
setupUnfilteredState(mEntry);
|
||||
|
||||
// THEN don't hide the entry based on visibility. (Redaction is handled elsewhere.)
|
||||
assertFalse(mKeyguardNotificationVisibilityProvider.shouldHideNotification(mEntry));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void notificationVisibilitySecret() {
|
||||
// GIVEN a VISIBILITY_SECRET notification
|
||||
NotificationEntryBuilder entryBuilder = new NotificationEntryBuilder()
|
||||
.setUser(new UserHandle(NOTIF_USER_ID));
|
||||
entryBuilder.modifyNotification(mContext)
|
||||
.setVisibility(VISIBILITY_SECRET);
|
||||
mEntry = entryBuilder.build();
|
||||
|
||||
// WHEN we're in an 'unfiltered-keyguard-showing' state
|
||||
setupUnfilteredState(mEntry);
|
||||
|
||||
// THEN hide the entry based on visibility.
|
||||
assertTrue(mKeyguardNotificationVisibilityProvider.shouldHideNotification(mEntry));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void summaryExceedsThresholdToShow() {
|
||||
// GIVEN the notification doesn't exceed the threshold to show on the lockscreen
|
||||
|
||||
Reference in New Issue
Block a user