Merge "Dump MediaDeviceManager state" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
87963f6207
@@ -22,6 +22,10 @@ import android.media.session.MediaController
|
||||
import com.android.settingslib.media.LocalMediaManager
|
||||
import com.android.settingslib.media.MediaDevice
|
||||
import com.android.systemui.dagger.qualifiers.Main
|
||||
import com.android.systemui.Dumpable
|
||||
import com.android.systemui.dump.DumpManager
|
||||
import java.io.FileDescriptor
|
||||
import java.io.PrintWriter
|
||||
import java.util.concurrent.Executor
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Singleton
|
||||
@@ -35,13 +39,15 @@ class MediaDeviceManager @Inject constructor(
|
||||
private val localMediaManagerFactory: LocalMediaManagerFactory,
|
||||
private val mr2manager: MediaRouter2Manager,
|
||||
@Main private val fgExecutor: Executor,
|
||||
private val mediaDataManager: MediaDataManager
|
||||
) : MediaDataManager.Listener {
|
||||
private val mediaDataManager: MediaDataManager,
|
||||
private val dumpManager: DumpManager
|
||||
) : MediaDataManager.Listener, Dumpable {
|
||||
private val listeners: MutableSet<Listener> = mutableSetOf()
|
||||
private val entries: MutableMap<String, Token> = mutableMapOf()
|
||||
|
||||
init {
|
||||
mediaDataManager.addListener(this)
|
||||
dumpManager.registerDumpable(javaClass.name, this)
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -81,6 +87,17 @@ class MediaDeviceManager @Inject constructor(
|
||||
}
|
||||
}
|
||||
|
||||
override fun dump(fd: FileDescriptor, pw: PrintWriter, args: Array<String>) {
|
||||
with(pw) {
|
||||
println("MediaDeviceManager state:")
|
||||
entries.forEach {
|
||||
key, entry ->
|
||||
println(" key=$key")
|
||||
entry.dump(fd, pw, args)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun processDevice(key: String, device: MediaDevice?) {
|
||||
val enabled = device != null
|
||||
val data = MediaDeviceData(enabled, device?.iconWithoutBackground, device?.name)
|
||||
@@ -122,6 +139,17 @@ class MediaDeviceManager @Inject constructor(
|
||||
localMediaManager.stopScan()
|
||||
localMediaManager.unregisterCallback(this)
|
||||
}
|
||||
fun dump(fd: FileDescriptor, pw: PrintWriter, args: Array<String>) {
|
||||
val route = controller?.let {
|
||||
mr2manager.getRoutingSessionForMediaController(it)
|
||||
}
|
||||
with(pw) {
|
||||
println(" current device is ${current?.name}")
|
||||
val type = controller?.playbackInfo?.playbackType
|
||||
println(" PlaybackType=$type (1 for local, 2 for remote)")
|
||||
println(" route=$route")
|
||||
}
|
||||
}
|
||||
override fun onDeviceListUpdate(devices: List<MediaDevice>?) = fgExecutor.execute {
|
||||
updateCurrent()
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ import androidx.test.filters.SmallTest
|
||||
import com.android.settingslib.media.LocalMediaManager
|
||||
import com.android.settingslib.media.MediaDevice
|
||||
import com.android.systemui.SysuiTestCase
|
||||
import com.android.systemui.dump.DumpManager
|
||||
import com.android.systemui.util.concurrency.FakeExecutor
|
||||
import com.android.systemui.util.time.FakeSystemClock
|
||||
|
||||
@@ -71,6 +72,7 @@ public class MediaDeviceManagerTest : SysuiTestCase() {
|
||||
@Mock private lateinit var lmm: LocalMediaManager
|
||||
@Mock private lateinit var mr2: MediaRouter2Manager
|
||||
private lateinit var fakeExecutor: FakeExecutor
|
||||
@Mock private lateinit var dumpster: DumpManager
|
||||
@Mock private lateinit var listener: MediaDeviceManager.Listener
|
||||
@Mock private lateinit var device: MediaDevice
|
||||
@Mock private lateinit var icon: Drawable
|
||||
@@ -85,7 +87,8 @@ public class MediaDeviceManagerTest : SysuiTestCase() {
|
||||
@Before
|
||||
fun setUp() {
|
||||
fakeExecutor = FakeExecutor(FakeSystemClock())
|
||||
manager = MediaDeviceManager(context, lmmFactory, mr2, fakeExecutor, mediaDataManager)
|
||||
manager = MediaDeviceManager(context, lmmFactory, mr2, fakeExecutor, mediaDataManager,
|
||||
dumpster)
|
||||
manager.addListener(listener)
|
||||
|
||||
// Configure mocks.
|
||||
|
||||
Reference in New Issue
Block a user