Add logging to KeyguardNotifVisProvider

Specifically, dump() the state tracked within the provider, and log when
the notif pipeline is invalidated due to a state change from the
provider (as well as what exactly changed).

Bug: 234824085
Test: manual
Change-Id: I608b857c9796ed37ba75ca51d8ab0d95df754fa4
Merged-In: I608b857c9796ed37ba75ca51d8ab0d95df754fa4
This commit is contained in:
Steve Elliott
2022-06-13 18:26:28 -04:00
parent 1ae1828729
commit d97b31f4e1
4 changed files with 28 additions and 2 deletions

View File

@@ -41,6 +41,7 @@ public class KeyguardCoordinator implements Coordinator {
private final HighPriorityProvider mHighPriorityProvider;
private final SectionHeaderVisibilityProvider mSectionHeaderVisibilityProvider;
private final KeyguardNotificationVisibilityProvider mKeyguardNotificationVisibilityProvider;
private final SharedCoordinatorLogger mLogger;
@Inject
public KeyguardCoordinator(
@@ -48,12 +49,14 @@ public class KeyguardCoordinator implements Coordinator {
KeyguardUpdateMonitor keyguardUpdateMonitor,
HighPriorityProvider highPriorityProvider,
SectionHeaderVisibilityProvider sectionHeaderVisibilityProvider,
KeyguardNotificationVisibilityProvider keyguardNotificationVisibilityProvider) {
KeyguardNotificationVisibilityProvider keyguardNotificationVisibilityProvider,
SharedCoordinatorLogger logger) {
mStatusBarStateController = statusBarStateController;
mKeyguardUpdateMonitor = keyguardUpdateMonitor;
mHighPriorityProvider = highPriorityProvider;
mSectionHeaderVisibilityProvider = sectionHeaderVisibilityProvider;
mKeyguardNotificationVisibilityProvider = keyguardNotificationVisibilityProvider;
mLogger = logger;
}
@Override
@@ -81,6 +84,7 @@ public class KeyguardCoordinator implements Coordinator {
}
private void invalidateListFromFilter(String reason) {
mLogger.logKeyguardCoordinatorInvalidated(reason);
updateSectionHeadersVisibility();
mNotifFilter.invalidateList();
}

View File

@@ -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"
})
}
}

View File

@@ -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
@@ -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

View File

@@ -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;
@@ -74,7 +75,7 @@ public class KeyguardCoordinatorTest extends SysuiTestCase {
KeyguardCoordinator keyguardCoordinator = new KeyguardCoordinator(
mStatusBarStateController,
mKeyguardUpdateMonitor, mHighPriorityProvider, mSectionHeaderVisibilityProvider,
mKeyguardNotificationVisibilityProvider);
mKeyguardNotificationVisibilityProvider, mock(SharedCoordinatorLogger.class));
mEntry = new NotificationEntryBuilder()
.setUser(new UserHandle(NOTIF_USER_ID))