Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/KeyguardCoordinator.java +13 −15 Original line number Diff line number Diff line Loading @@ -16,14 +16,14 @@ package com.android.systemui.statusbar.notification.collection.coordinator; import com.android.keyguard.KeyguardUpdateMonitor; import androidx.annotation.NonNull; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.notification.collection.NotifPipeline; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope; import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter; import com.android.systemui.statusbar.notification.collection.provider.HighPriorityProvider; import com.android.systemui.statusbar.notification.collection.provider.SectionHeaderVisibilityProvider; import com.android.systemui.statusbar.notification.interruption.KeyguardNotificationVisibilityProvider; Loading @@ -36,24 +36,21 @@ import javax.inject.Inject; @CoordinatorScope public class KeyguardCoordinator implements Coordinator { private static final String TAG = "KeyguardCoordinator"; private final StatusBarStateController mStatusBarStateController; private final KeyguardUpdateMonitor mKeyguardUpdateMonitor; private final HighPriorityProvider mHighPriorityProvider; private final SectionHeaderVisibilityProvider mSectionHeaderVisibilityProvider; private final KeyguardNotificationVisibilityProvider mKeyguardNotificationVisibilityProvider; private final SectionHeaderVisibilityProvider mSectionHeaderVisibilityProvider; private final SharedCoordinatorLogger mLogger; private final StatusBarStateController mStatusBarStateController; @Inject public KeyguardCoordinator( StatusBarStateController statusBarStateController, KeyguardUpdateMonitor keyguardUpdateMonitor, HighPriorityProvider highPriorityProvider, KeyguardNotificationVisibilityProvider keyguardNotificationVisibilityProvider, SectionHeaderVisibilityProvider sectionHeaderVisibilityProvider, KeyguardNotificationVisibilityProvider keyguardNotificationVisibilityProvider) { mStatusBarStateController = statusBarStateController; mKeyguardUpdateMonitor = keyguardUpdateMonitor; mHighPriorityProvider = highPriorityProvider; mSectionHeaderVisibilityProvider = sectionHeaderVisibilityProvider; SharedCoordinatorLogger logger, StatusBarStateController statusBarStateController) { mKeyguardNotificationVisibilityProvider = keyguardNotificationVisibilityProvider; mSectionHeaderVisibilityProvider = sectionHeaderVisibilityProvider; mLogger = logger; mStatusBarStateController = statusBarStateController; } @Override Loading @@ -69,7 +66,7 @@ public class KeyguardCoordinator implements Coordinator { private final NotifFilter mNotifFilter = new NotifFilter(TAG) { @Override public boolean shouldFilterOut(NotificationEntry entry, long now) { public boolean shouldFilterOut(@NonNull NotificationEntry entry, long now) { return mKeyguardNotificationVisibilityProvider.shouldHideNotification(entry); } }; Loading @@ -81,6 +78,7 @@ public class KeyguardCoordinator implements Coordinator { } private void invalidateListFromFilter(String reason) { mLogger.logKeyguardCoordinatorInvalidated(reason); updateSectionHeadersVisibility(); mNotifFilter.invalidateList(); } Loading packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/SharedCoordinatorLogger.kt +8 −0 Original line number Diff line number Diff line Loading @@ -35,4 +35,12 @@ class SharedCoordinatorLogger @Inject constructor( "Current user or profiles changed. Current user is $int1; profiles are $str1" }) } fun logKeyguardCoordinatorInvalidated(reason: String) { buffer.log("KeyguardCoordinator", LogLevel.DEBUG, { str1 = reason }, { "KeyguardCoordinator invalidated: $str1" }) } } packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProvider.kt +13 −0 Original line number Diff line number Diff line Loading @@ -25,12 +25,15 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntry import com.android.systemui.statusbar.notification.collection.provider.HighPriorityProvider import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.systemui.util.ListenerSet import com.android.systemui.util.asIndenting import com.android.systemui.util.settings.GlobalSettings import com.android.systemui.util.settings.SecureSettings import com.android.systemui.util.withIncreasedIndent import dagger.Binds import dagger.Module import dagger.multibindings.ClassKey import dagger.multibindings.IntoMap import java.io.PrintWriter import java.util.function.Consumer import javax.inject.Inject Loading Loading @@ -209,6 +212,16 @@ private class KeyguardNotificationVisibilityProviderImpl @Inject constructor( } } override fun dump(pw: PrintWriter, args: Array<out String>) = pw.asIndenting().run { println("isLockedOrLocking=$isLockedOrLocking") withIncreasedIndent { println("keyguardStateController.isShowing=${keyguardStateController.isShowing}") println("statusBarStateController.currentOrUpcomingState=" + "${statusBarStateController.currentOrUpcomingState}") } println("hideSilentNotificationsOnLockscreen=$hideSilentNotificationsOnLockscreen") } private val isLockedOrLocking get() = keyguardStateController.isShowing || statusBarStateController.currentOrUpcomingState == StatusBarState.KEYGUARD Loading packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/KeyguardCoordinatorTest.java +5 −3 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.statusbar.notification.collection.coordinator; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; Loading Loading @@ -72,9 +73,10 @@ public class KeyguardCoordinatorTest extends SysuiTestCase { public void setup() { MockitoAnnotations.initMocks(this); KeyguardCoordinator keyguardCoordinator = new KeyguardCoordinator( mStatusBarStateController, mKeyguardUpdateMonitor, mHighPriorityProvider, mSectionHeaderVisibilityProvider, mKeyguardNotificationVisibilityProvider); mKeyguardNotificationVisibilityProvider, mSectionHeaderVisibilityProvider, mock(SharedCoordinatorLogger.class), mStatusBarStateController); mEntry = new NotificationEntryBuilder() .setUser(new UserHandle(NOTIF_USER_ID)) Loading Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/KeyguardCoordinator.java +13 −15 Original line number Diff line number Diff line Loading @@ -16,14 +16,14 @@ package com.android.systemui.statusbar.notification.collection.coordinator; import com.android.keyguard.KeyguardUpdateMonitor; import androidx.annotation.NonNull; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.statusbar.StatusBarState; import com.android.systemui.statusbar.notification.collection.NotifPipeline; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.collection.coordinator.dagger.CoordinatorScope; import com.android.systemui.statusbar.notification.collection.listbuilder.pluggable.NotifFilter; import com.android.systemui.statusbar.notification.collection.provider.HighPriorityProvider; import com.android.systemui.statusbar.notification.collection.provider.SectionHeaderVisibilityProvider; import com.android.systemui.statusbar.notification.interruption.KeyguardNotificationVisibilityProvider; Loading @@ -36,24 +36,21 @@ import javax.inject.Inject; @CoordinatorScope public class KeyguardCoordinator implements Coordinator { private static final String TAG = "KeyguardCoordinator"; private final StatusBarStateController mStatusBarStateController; private final KeyguardUpdateMonitor mKeyguardUpdateMonitor; private final HighPriorityProvider mHighPriorityProvider; private final SectionHeaderVisibilityProvider mSectionHeaderVisibilityProvider; private final KeyguardNotificationVisibilityProvider mKeyguardNotificationVisibilityProvider; private final SectionHeaderVisibilityProvider mSectionHeaderVisibilityProvider; private final SharedCoordinatorLogger mLogger; private final StatusBarStateController mStatusBarStateController; @Inject public KeyguardCoordinator( StatusBarStateController statusBarStateController, KeyguardUpdateMonitor keyguardUpdateMonitor, HighPriorityProvider highPriorityProvider, KeyguardNotificationVisibilityProvider keyguardNotificationVisibilityProvider, SectionHeaderVisibilityProvider sectionHeaderVisibilityProvider, KeyguardNotificationVisibilityProvider keyguardNotificationVisibilityProvider) { mStatusBarStateController = statusBarStateController; mKeyguardUpdateMonitor = keyguardUpdateMonitor; mHighPriorityProvider = highPriorityProvider; mSectionHeaderVisibilityProvider = sectionHeaderVisibilityProvider; SharedCoordinatorLogger logger, StatusBarStateController statusBarStateController) { mKeyguardNotificationVisibilityProvider = keyguardNotificationVisibilityProvider; mSectionHeaderVisibilityProvider = sectionHeaderVisibilityProvider; mLogger = logger; mStatusBarStateController = statusBarStateController; } @Override Loading @@ -69,7 +66,7 @@ public class KeyguardCoordinator implements Coordinator { private final NotifFilter mNotifFilter = new NotifFilter(TAG) { @Override public boolean shouldFilterOut(NotificationEntry entry, long now) { public boolean shouldFilterOut(@NonNull NotificationEntry entry, long now) { return mKeyguardNotificationVisibilityProvider.shouldHideNotification(entry); } }; Loading @@ -81,6 +78,7 @@ public class KeyguardCoordinator implements Coordinator { } private void invalidateListFromFilter(String reason) { mLogger.logKeyguardCoordinatorInvalidated(reason); updateSectionHeadersVisibility(); mNotifFilter.invalidateList(); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/notification/collection/coordinator/SharedCoordinatorLogger.kt +8 −0 Original line number Diff line number Diff line Loading @@ -35,4 +35,12 @@ class SharedCoordinatorLogger @Inject constructor( "Current user or profiles changed. Current user is $int1; profiles are $str1" }) } fun logKeyguardCoordinatorInvalidated(reason: String) { buffer.log("KeyguardCoordinator", LogLevel.DEBUG, { str1 = reason }, { "KeyguardCoordinator invalidated: $str1" }) } }
packages/SystemUI/src/com/android/systemui/statusbar/notification/interruption/KeyguardNotificationVisibilityProvider.kt +13 −0 Original line number Diff line number Diff line Loading @@ -25,12 +25,15 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntry import com.android.systemui.statusbar.notification.collection.provider.HighPriorityProvider import com.android.systemui.statusbar.policy.KeyguardStateController import com.android.systemui.util.ListenerSet import com.android.systemui.util.asIndenting import com.android.systemui.util.settings.GlobalSettings import com.android.systemui.util.settings.SecureSettings import com.android.systemui.util.withIncreasedIndent import dagger.Binds import dagger.Module import dagger.multibindings.ClassKey import dagger.multibindings.IntoMap import java.io.PrintWriter import java.util.function.Consumer import javax.inject.Inject Loading Loading @@ -209,6 +212,16 @@ private class KeyguardNotificationVisibilityProviderImpl @Inject constructor( } } override fun dump(pw: PrintWriter, args: Array<out String>) = pw.asIndenting().run { println("isLockedOrLocking=$isLockedOrLocking") withIncreasedIndent { println("keyguardStateController.isShowing=${keyguardStateController.isShowing}") println("statusBarStateController.currentOrUpcomingState=" + "${statusBarStateController.currentOrUpcomingState}") } println("hideSilentNotificationsOnLockscreen=$hideSilentNotificationsOnLockscreen") } private val isLockedOrLocking get() = keyguardStateController.isShowing || statusBarStateController.currentOrUpcomingState == StatusBarState.KEYGUARD Loading
packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/collection/coordinator/KeyguardCoordinatorTest.java +5 −3 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.systemui.statusbar.notification.collection.coordinator; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; Loading Loading @@ -72,9 +73,10 @@ public class KeyguardCoordinatorTest extends SysuiTestCase { public void setup() { MockitoAnnotations.initMocks(this); KeyguardCoordinator keyguardCoordinator = new KeyguardCoordinator( mStatusBarStateController, mKeyguardUpdateMonitor, mHighPriorityProvider, mSectionHeaderVisibilityProvider, mKeyguardNotificationVisibilityProvider); mKeyguardNotificationVisibilityProvider, mSectionHeaderVisibilityProvider, mock(SharedCoordinatorLogger.class), mStatusBarStateController); mEntry = new NotificationEntryBuilder() .setUser(new UserHandle(NOTIF_USER_ID)) Loading