diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaResumeListener.kt b/packages/SystemUI/src/com/android/systemui/media/MediaResumeListener.kt index 5c1c60c5b07e9..80d13715ca077 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaResumeListener.kt +++ b/packages/SystemUI/src/com/android/systemui/media/MediaResumeListener.kt @@ -29,11 +29,15 @@ import android.provider.Settings import android.service.media.MediaBrowserService import android.util.Log import com.android.internal.annotations.VisibleForTesting +import com.android.systemui.Dumpable import com.android.systemui.broadcast.BroadcastDispatcher import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Background +import com.android.systemui.dump.DumpManager import com.android.systemui.tuner.TunerService import com.android.systemui.util.Utils +import java.io.FileDescriptor +import java.io.PrintWriter import java.util.concurrent.ConcurrentLinkedQueue import java.util.concurrent.Executor import javax.inject.Inject @@ -49,8 +53,9 @@ class MediaResumeListener @Inject constructor( private val broadcastDispatcher: BroadcastDispatcher, @Background private val backgroundExecutor: Executor, private val tunerService: TunerService, - private val mediaBrowserFactory: ResumeMediaBrowserFactory -) : MediaDataManager.Listener { + private val mediaBrowserFactory: ResumeMediaBrowserFactory, + dumpManager: DumpManager +) : MediaDataManager.Listener, Dumpable { private var useMediaResumption: Boolean = Utils.useMediaResumption(context) private val resumeComponents: ConcurrentLinkedQueue = ConcurrentLinkedQueue() @@ -99,6 +104,7 @@ class MediaResumeListener @Inject constructor( init { if (useMediaResumption) { + dumpManager.registerDumpable(TAG, this) val unlockFilter = IntentFilter() unlockFilter.addAction(Intent.ACTION_USER_UNLOCKED) unlockFilter.addAction(Intent.ACTION_USER_SWITCHED) @@ -283,4 +289,10 @@ class MediaResumeListener @Inject constructor( mediaBrowser?.restart() } } + + override fun dump(fd: FileDescriptor, pw: PrintWriter, args: Array) { + pw.apply { + println("resumeComponents: $resumeComponents") + } + } } \ No newline at end of file diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/MediaResumeListenerTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/MediaResumeListenerTest.kt index 5d81de6bce009..59c2b176f12ee 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/MediaResumeListenerTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/MediaResumeListenerTest.kt @@ -33,6 +33,7 @@ import android.testing.TestableLooper import androidx.test.filters.SmallTest import com.android.systemui.SysuiTestCase import com.android.systemui.broadcast.BroadcastDispatcher +import com.android.systemui.dump.DumpManager import com.android.systemui.tuner.TunerService import com.android.systemui.util.concurrency.FakeExecutor import com.android.systemui.util.time.FakeSystemClock @@ -85,6 +86,7 @@ class MediaResumeListenerTest : SysuiTestCase() { @Mock private lateinit var sharedPrefsEditor: SharedPreferences.Editor @Mock private lateinit var mockContext: Context @Mock private lateinit var pendingIntent: PendingIntent + @Mock private lateinit var dumpManager: DumpManager @Captor lateinit var callbackCaptor: ArgumentCaptor @@ -120,7 +122,7 @@ class MediaResumeListenerTest : SysuiTestCase() { executor = FakeExecutor(FakeSystemClock()) resumeListener = MediaResumeListener(mockContext, broadcastDispatcher, executor, - tunerService, resumeBrowserFactory) + tunerService, resumeBrowserFactory, dumpManager) resumeListener.setManager(mediaDataManager) mediaDataManager.addListener(resumeListener) @@ -159,7 +161,7 @@ class MediaResumeListenerTest : SysuiTestCase() { // When listener is created, we do NOT register a user change listener val listener = MediaResumeListener(context, broadcastDispatcher, executor, tunerService, - resumeBrowserFactory) + resumeBrowserFactory, dumpManager) listener.setManager(mediaDataManager) verify(broadcastDispatcher, never()).registerReceiver(eq(listener.userChangeReceiver), any(), any(), any())