Merge "New Pipeline: hide VISIBILITY_SECRET notifications on lock screen" into tm-dev
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
package com.android.systemui.statusbar.notification.interruption
|
package com.android.systemui.statusbar.notification.interruption
|
||||||
|
|
||||||
import android.app.Notification
|
import android.app.Notification
|
||||||
|
import android.app.Notification.VISIBILITY_SECRET
|
||||||
import android.content.BroadcastReceiver
|
import android.content.BroadcastReceiver
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
@@ -172,6 +173,8 @@ private class KeyguardNotificationVisibilityProviderImpl @Inject constructor(
|
|||||||
!lockscreenUserManager.shouldShowLockscreenNotifications() -> true
|
!lockscreenUserManager.shouldShowLockscreenNotifications() -> true
|
||||||
// User settings do not allow this notification on the lockscreen, so hide it.
|
// User settings do not allow this notification on the lockscreen, so hide it.
|
||||||
userSettingsDisallowNotification(entry) -> true
|
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
|
// if entry is silent, apply custom logic to see if should hide
|
||||||
shouldHideIfEntrySilent(entry) -> true
|
shouldHideIfEntrySilent(entry) -> true
|
||||||
else -> false
|
else -> false
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
package com.android.systemui.statusbar.notification.interruption;
|
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_PUBLIC;
|
||||||
import static android.app.Notification.VISIBILITY_SECRET;
|
import static android.app.Notification.VISIBILITY_SECRET;
|
||||||
import static android.app.NotificationManager.IMPORTANCE_HIGH;
|
import static android.app.NotificationManager.IMPORTANCE_HIGH;
|
||||||
@@ -448,6 +449,54 @@ public class KeyguardNotificationVisibilityProviderTest extends SysuiTestCase {
|
|||||||
assertFalse(mKeyguardNotificationVisibilityProvider.shouldHideNotification(mEntry));
|
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
|
@Test
|
||||||
public void summaryExceedsThresholdToShow() {
|
public void summaryExceedsThresholdToShow() {
|
||||||
// GIVEN the notification doesn't exceed the threshold to show on the lockscreen
|
// GIVEN the notification doesn't exceed the threshold to show on the lockscreen
|
||||||
|
|||||||
Reference in New Issue
Block a user