diff options
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.kt | 15 |
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, |