Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d97b31f4 authored by Steve Elliott's avatar Steve Elliott
Browse files

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
parent 1ae18287
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -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();
    }
+8 −0
Original line number Diff line number Diff line
@@ -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"
        })
    }
}
+13 −0
Original line number Diff line number Diff line
@@ -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
+2 −1
Original line number Diff line number Diff line
@@ -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))