summaryrefslogtreecommitdiff
path: root/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProvider.kt
diff options
context:
space:
mode:
Diffstat (limited to 'packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProvider.kt')
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProvider.kt15
1 files changed, 10 insertions, 5 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProvider.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProvider.kt
index cff42f29a626..6cd3a6a72865 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProvider.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProvider.kt
@@ -107,8 +107,7 @@ private class KeyguardNotificationVisibilityProviderImpl @Inject constructor(
if (uri == showSilentNotifsUri) {
readShowSilentNotificationSetting()
}
- if (statusBarStateController.getCurrentOrUpcomingState()
- == StatusBarState.KEYGUARD) {
+ if (isLockedOrLocking) {
notifyStateChanged("Settings $uri changed")
}
}
@@ -134,14 +133,16 @@ private class KeyguardNotificationVisibilityProviderImpl @Inject constructor(
// register (maybe) public mode changed callbacks:
statusBarStateController.addCallback(object : StatusBarStateController.StateListener {
+ override fun onStateChanged(newState: Int) {
+ notifyStateChanged("onStatusBarStateChanged")
+ }
override fun onUpcomingStateChanged(state: Int) {
notifyStateChanged("onStatusBarUpcomingStateChanged")
}
})
broadcastDispatcher.registerReceiver(object : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
- if (statusBarStateController.getCurrentOrUpcomingState()
- == StatusBarState.KEYGUARD) {
+ if (isLockedOrLocking) {
// maybe public mode changed
notifyStateChanged(intent.action!!)
}
@@ -163,7 +164,7 @@ private class KeyguardNotificationVisibilityProviderImpl @Inject constructor(
override fun shouldHideNotification(entry: NotificationEntry): Boolean = when {
// Keyguard state doesn't matter if the keyguard is not showing.
- statusBarStateController.getCurrentOrUpcomingState() != StatusBarState.KEYGUARD -> false
+ !isLockedOrLocking -> false
// Notifications not allowed on the lockscreen, always hide.
!lockscreenUserManager.shouldShowLockscreenNotifications() -> true
// User settings do not allow this notification on the lockscreen, so hide it.
@@ -208,6 +209,10 @@ private class KeyguardNotificationVisibilityProviderImpl @Inject constructor(
}
}
+ private val isLockedOrLocking get() =
+ keyguardStateController.isShowing ||
+ statusBarStateController.currentOrUpcomingState == StatusBarState.KEYGUARD
+
private fun readShowSilentNotificationSetting() {
val showSilentNotifs =
secureSettings.getBoolForUser(Settings.Secure.LOCK_SCREEN_SHOW_SILENT_NOTIFICATIONS,