diff options
4 files changed, 48 insertions, 26 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaCarouselController.kt b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaCarouselController.kt index 4e97eb5bc9d1..47161191b229 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaCarouselController.kt +++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaCarouselController.kt @@ -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") diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaHierarchyManager.kt b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaHierarchyManager.kt index b4dabbe036e9..a6aa159692ec 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaHierarchyManager.kt +++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaHierarchyManager.kt @@ -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 diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaViewController.kt b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaViewController.kt index a2ddc20844e7..86e92941256b 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaViewController.kt +++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaViewController.kt @@ -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, ) diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaHierarchyManagerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaHierarchyManagerTest.kt index 0508c2cf0426..072caa74df20 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaHierarchyManagerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaHierarchyManagerTest.kt @@ -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, ) } |