Dump list of saved resume components

Bug: 176956314
Test: take bugreport, verify is in dumpsys
Test: atest MediaResumeListenerTest
Change-Id: Ie2e3b982a112b03d336d749e3d113071225058bc
This commit is contained in:
Beth Thibodeau
2021-01-07 18:45:05 -05:00
parent f17961cdd3
commit c5bd0301fe
2 changed files with 18 additions and 4 deletions

View File

@@ -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<ComponentName> = 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<out String>) {
pw.apply {
println("resumeComponents: $resumeComponents")
}
}
}

View File

@@ -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<ResumeMediaBrowser.Callback>
@@ -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())