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

Commit b1b9ee2e authored by Beth Thibodeau's avatar Beth Thibodeau
Browse files

Improve debug logging for media views

Add dump for MediaHierarchyManager, also dump visibility info and remove redundant logs

Bug: 342175696
Test: adb shell dumpsys activity service SystemUI
Flag: EXEMPT logging only
Change-Id: Icdc7ce763b48ea9708cb9167e38ad917fa1aa311
parent b55dba6f
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -1744,7 +1744,8 @@ constructor(
            println("location: $desiredLocation")
            println(
                "state: ${desiredHostState?.expansion}, " +
                    "only active ${desiredHostState?.showsOnlyActiveMedia}"
                    "only active ${desiredHostState?.showsOnlyActiveMedia}, " +
                    "visible ${desiredHostState?.visible}"
            )
            println("isSwipedAway: ${MediaPlayerData.isSwipedAway}")
            println("allowMediaPlayerOnLockScreen: $allowMediaPlayerOnLockScreen")
+19 −1
Original line number Diff line number Diff line
@@ -37,12 +37,14 @@ import com.android.app.animation.Interpolators
import com.android.app.tracing.coroutines.launchTraced as launch
import com.android.app.tracing.traceSection
import com.android.keyguard.KeyguardViewController
import com.android.systemui.Dumpable
import com.android.systemui.Flags.mediaControlsLockscreenShadeBugFix
import com.android.systemui.communal.ui.viewmodel.CommunalTransitionViewModel
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.dagger.qualifiers.Application
import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dreams.DreamOverlayStateController
import com.android.systemui.dump.DumpManager
import com.android.systemui.keyguard.WakefulnessLifecycle
import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
import com.android.systemui.media.controls.domain.pipeline.MediaDataManager
@@ -62,6 +64,7 @@ import com.android.systemui.statusbar.policy.KeyguardStateController
import com.android.systemui.statusbar.policy.SplitShadeStateController
import com.android.systemui.util.animation.UniqueObjectHostView
import com.android.systemui.util.settings.SecureSettings
import java.io.PrintWriter
import javax.inject.Inject
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -119,7 +122,8 @@ constructor(
    @Application private val coroutineScope: CoroutineScope,
    private val splitShadeStateController: SplitShadeStateController,
    private val logger: MediaViewLogger,
) {
    private val dumpManager: DumpManager,
) : Dumpable {

    /** Track the media player setting status on lock screen. */
    private var allowMediaPlayerOnLockScreen: Boolean = true
@@ -476,6 +480,7 @@ constructor(
    }

    init {
        dumpManager.registerNormalDumpable(TAG, this)
        updateConfiguration()
        configurationController.addCallback(
            object : ConfigurationController.ConfigurationListener {
@@ -1344,6 +1349,19 @@ constructor(
        return isCommunalShowing && !isPrimaryBouncerShowing && !isAnyShadeFullyExpanded
    }

    override fun dump(pw: PrintWriter, args: Array<out String>) {
        pw.apply {
            println(
                "current attachment: $currentAttachmentLocation, " +
                    "desired location: $desiredLocation, " +
                    "visible ${getHost(desiredLocation)?.visible}"
            )
            println("previous location: $previousLocation")
            println("bounds: $currentBounds, target $targetBounds")
            println("clipping: $currentClipping, target $targetClipping")
        }
    }

    companion object {
        /** Attached in expanded quick settings */
        const val LOCATION_QS = 0
+2 −2
Original line number Diff line number Diff line
@@ -883,7 +883,6 @@ constructor(
            currentEndLocation = endLocation
            currentStartLocation = startLocation
            currentTransitionProgress = transitionProgress
            logger.logMediaLocation("setCurrentState", startLocation, endLocation)

            val shouldAnimate = animateNextStateChange && !applyImmediately

@@ -900,6 +899,7 @@ constructor(
            // If the view isn't bound, we can drop the animation, otherwise we'll execute it
            animateNextStateChange = false
            if (transitionLayout == null) {
                logger.logMediaLocation("setCurrentState: view not bound", startLocation, endLocation)
                return
            }

@@ -949,7 +949,7 @@ constructor(
                    )
            }
            logger.logMediaSize(
                "setCurrentState (progress $transitionProgress)",
                "setCurrentState $startLocation -> $endLocation (progress $transitionProgress)",
                result.width,
                result.height,
            )
+25 −22
Original line number Diff line number Diff line
@@ -31,6 +31,7 @@ import com.android.systemui.communal.shared.model.CommunalScenes
import com.android.systemui.communal.ui.viewmodel.communalTransitionViewModel
import com.android.systemui.controls.controller.ControlsControllerImplTest.Companion.eq
import com.android.systemui.dreams.DreamOverlayStateController
import com.android.systemui.dump.DumpManager
import com.android.systemui.flags.DisableSceneContainer
import com.android.systemui.keyguard.WakefulnessLifecycle
import com.android.systemui.keyguard.data.repository.fakeKeyguardRepository
@@ -110,6 +111,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
    @Mock private lateinit var dreamOverlayStateController: DreamOverlayStateController
    @Mock private lateinit var shadeInteractor: ShadeInteractor
    @Mock lateinit var logger: MediaViewLogger
    @Mock lateinit var dumpManager: DumpManager
    @Captor
    private lateinit var wakefullnessObserver: ArgumentCaptor<(WakefulnessLifecycle.Observer)>
    @Captor
@@ -166,6 +168,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                testScope.backgroundScope,
                ResourcesSplitShadeStateController(),
                logger,
                dumpManager,
            )
        verify(wakefulnessLifecycle).addObserver(wakefullnessObserver.capture())
        verify(statusBarStateController).addCallback(statusBarCallback.capture())
@@ -209,7 +212,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                any<MediaHostState>(),
                anyBoolean(),
                anyLong(),
                anyLong()
                anyLong(),
            )
        val observer = wakefullnessObserver.value
        assertNotNull("lifecycle observer wasn't registered", observer)
@@ -222,7 +225,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                any<MediaHostState>(),
                anyBoolean(),
                anyLong(),
                anyLong()
                anyLong(),
            )
    }

@@ -236,7 +239,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                any<MediaHostState>(),
                anyBoolean(),
                anyLong(),
                anyLong()
                anyLong(),
            )
        val observer = wakefullnessObserver.value
        assertNotNull("lifecycle observer wasn't registered", observer)
@@ -249,7 +252,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                any<MediaHostState>(),
                anyBoolean(),
                anyLong(),
                anyLong()
                anyLong(),
            )
    }

@@ -263,7 +266,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                any<MediaHostState>(),
                anyBoolean(),
                anyLong(),
                anyLong()
                anyLong(),
            )
        clearInvocations(mediaCarouselController)
        configurationController.notifyConfigurationChanged()
@@ -273,7 +276,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                any<MediaHostState>(),
                anyBoolean(),
                anyLong(),
                anyLong()
                anyLong(),
            )
    }

@@ -287,7 +290,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                any<MediaHostState>(),
                anyBoolean(),
                anyLong(),
                anyLong()
                anyLong(),
            )
        val observer = wakefullnessObserver.value
        assertNotNull("lifecycle observer wasn't registered", observer)
@@ -299,7 +302,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                any<MediaHostState>(),
                anyBoolean(),
                anyLong(),
                anyLong()
                anyLong(),
            )
    }

@@ -315,7 +318,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                any<MediaHostState>(),
                eq(false),
                anyLong(),
                anyLong()
                anyLong(),
            )
        clearInvocations(mediaCarouselController)

@@ -327,7 +330,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                any<MediaHostState>(),
                eq(false),
                anyLong(),
                anyLong()
                anyLong(),
            )

        // Let's make sure alpha is set
@@ -528,7 +531,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                nullable(),
                eq(false),
                anyLong(),
                anyLong()
                anyLong(),
            )
        clearInvocations(mediaCarouselController)

@@ -539,7 +542,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                any<MediaHostState>(),
                eq(false),
                anyLong(),
                anyLong()
                anyLong(),
            )
    }

@@ -559,7 +562,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                    nullable(),
                    eq(false),
                    anyLong(),
                    anyLong()
                    anyLong(),
                )
            clearInvocations(mediaCarouselController)

@@ -576,7 +579,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                    any<MediaHostState>(),
                    eq(false),
                    anyLong(),
                    anyLong()
                    anyLong(),
                )
        }

@@ -597,7 +600,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                    nullable(),
                    eq(false),
                    anyLong(),
                    anyLong()
                    anyLong(),
                )

            val captor = ArgumentCaptor.forClass(Boolean::class.java)
@@ -630,7 +633,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                    nullable(),
                    eq(false),
                    anyLong(),
                    anyLong()
                    anyLong(),
                )

            val captor = ArgumentCaptor.forClass(Boolean::class.java)
@@ -666,7 +669,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                    nullable(),
                    eq(false),
                    anyLong(),
                    anyLong()
                    anyLong(),
                )
        }

@@ -689,7 +692,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                    nullable(),
                    eq(false),
                    anyLong(),
                    anyLong()
                    anyLong(),
                )
            clearInvocations(mediaCarouselController)

@@ -704,7 +707,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                    any<MediaHostState>(),
                    eq(false),
                    anyLong(),
                    anyLong()
                    anyLong(),
                )
        }

@@ -734,7 +737,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                    anyOrNull(),
                    eq(false),
                    anyLong(),
                    anyLong()
                    anyLong(),
                )
            clearInvocations(mediaCarouselController)

@@ -749,7 +752,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
                    any<MediaHostState>(),
                    eq(false),
                    anyLong(),
                    anyLong()
                    anyLong(),
                )
        }

@@ -788,7 +791,7 @@ class MediaHierarchyManagerTest : SysuiTestCase() {
        whenever(statusBarStateController.state).thenReturn(StatusBarState.SHADE_LOCKED)
        statusBarCallback.value.onStatePreChange(
            StatusBarState.KEYGUARD,
            StatusBarState.SHADE_LOCKED
            StatusBarState.SHADE_LOCKED,
        )
    }