summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Selim Cinek <cinek@google.com> 2019-07-25 12:00:38 -0700
committer android-build-merger <android-build-merger@google.com> 2019-07-25 12:00:38 -0700
commit5abf5e1caa5147bd8a8d6542a7983c3d9e31caf1 (patch)
tree9cec8767b1ed90ee7b9adabb40413cadef95b660
parente71916fc8b2b5d83f23504b5e108726bcccde82f (diff)
parent3721d7f842114cb99badf696817c3694d3808b0e (diff)
Merge "Fixed that autoheads up were not visible or accidentally visible at times" into qt-r1-dev
am: 3721d7f842 Change-Id: I939981b3852a2cb9a1bd3794815f8140c1cb6caf
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/notification/BypassHeadsUpNotifier.kt34
1 files changed, 29 insertions, 5 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/BypassHeadsUpNotifier.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/BypassHeadsUpNotifier.kt
index fbaefdec90c1..314dc04e574f 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/BypassHeadsUpNotifier.kt
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/BypassHeadsUpNotifier.kt
@@ -21,6 +21,7 @@ import android.media.MediaMetadata
import android.provider.Settings
import com.android.keyguard.KeyguardUpdateMonitor
import com.android.systemui.plugins.statusbar.StatusBarStateController
+import com.android.systemui.statusbar.NotificationLockscreenUserManager
import com.android.systemui.statusbar.NotificationMediaManager
import com.android.systemui.statusbar.StatusBarState
import com.android.systemui.statusbar.notification.collection.NotificationEntry
@@ -40,6 +41,7 @@ class BypassHeadsUpNotifier @Inject constructor(
private val bypassController: KeyguardBypassController,
private val statusBarStateController: StatusBarStateController,
private val headsUpManager: HeadsUpManagerPhone,
+ private val notificationLockscreenUserManager: NotificationLockscreenUserManager,
private val mediaManager: NotificationMediaManager,
tunerService: TunerService) : StatusBarStateController.StateListener,
NotificationMediaManager.MediaListener {
@@ -79,9 +81,6 @@ class BypassHeadsUpNotifier @Inject constructor(
if (!NotificationMediaManager.isPlayingState(state)) {
newEntry = null
}
- if (newEntry?.isSensitive == true) {
- newEntry = null
- }
currentMediaEntry = newEntry
updateAutoHeadsUp(previous)
updateAutoHeadsUp(currentMediaEntry)
@@ -89,7 +88,7 @@ class BypassHeadsUpNotifier @Inject constructor(
private fun updateAutoHeadsUp(entry: NotificationEntry?) {
entry?.let {
- val autoHeadsUp = it == currentMediaEntry && canAutoHeadsUp()
+ val autoHeadsUp = it == currentMediaEntry && canAutoHeadsUp(it)
it.isAutoHeadsUp = autoHeadsUp
if (autoHeadsUp) {
headsUpManager.showNotification(it)
@@ -97,11 +96,36 @@ class BypassHeadsUpNotifier @Inject constructor(
}
}
+ /**
+ * @return {@code true} if this entry be autoHeadsUpped right now.
+ */
+ private fun canAutoHeadsUp(entry: NotificationEntry): Boolean {
+ if (!isAutoHeadsUpAllowed()) {
+ return false;
+ }
+ if (entry.isSensitive) {
+ // filter sensitive notifications
+ return false
+ }
+ if (!notificationLockscreenUserManager.shouldShowOnKeyguard(entry)) {
+ // filter notifications invisible on Keyguard
+ return false
+ }
+ if (!entryManager.notificationData.activeNotifications.contains(entry)) {
+ // filter notifications not the active list currently
+ return false
+ }
+ return true
+ }
+
override fun onStatePostChange() {
updateAutoHeadsUp(currentMediaEntry)
}
- private fun canAutoHeadsUp() : Boolean {
+ /**
+ * @return {@code true} if autoHeadsUp is possible right now.
+ */
+ private fun isAutoHeadsUpAllowed() : Boolean {
if (!enabled) {
return false
}