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

Commit 851d1da6 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Dump MediaDeviceManager state" into rvc-dev am: 87963f62 am:...

Merge "Dump MediaDeviceManager state" into rvc-dev am: 87963f62 am: 30028c2d am: 7bfb2874 am: 003e114d

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11872631

Change-Id: Ia94807e35b3ae3f529916ea22ab5e9cca0f0f98e
parents 7af4ae07 003e114d
Loading
Loading
Loading
Loading
+30 −2
Original line number Original line Diff line number Diff line
@@ -22,6 +22,10 @@ import android.media.session.MediaController
import com.android.settingslib.media.LocalMediaManager
import com.android.settingslib.media.LocalMediaManager
import com.android.settingslib.media.MediaDevice
import com.android.settingslib.media.MediaDevice
import com.android.systemui.dagger.qualifiers.Main
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 java.util.concurrent.Executor
import javax.inject.Inject
import javax.inject.Inject
import javax.inject.Singleton
import javax.inject.Singleton
@@ -35,13 +39,15 @@ class MediaDeviceManager @Inject constructor(
    private val localMediaManagerFactory: LocalMediaManagerFactory,
    private val localMediaManagerFactory: LocalMediaManagerFactory,
    private val mr2manager: MediaRouter2Manager,
    private val mr2manager: MediaRouter2Manager,
    @Main private val fgExecutor: Executor,
    @Main private val fgExecutor: Executor,
    private val mediaDataManager: MediaDataManager
    private val mediaDataManager: MediaDataManager,
) : MediaDataManager.Listener {
    private val dumpManager: DumpManager
) : MediaDataManager.Listener, Dumpable {
    private val listeners: MutableSet<Listener> = mutableSetOf()
    private val listeners: MutableSet<Listener> = mutableSetOf()
    private val entries: MutableMap<String, Token> = mutableMapOf()
    private val entries: MutableMap<String, Token> = mutableMapOf()


    init {
    init {
        mediaDataManager.addListener(this)
        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?) {
    private fun processDevice(key: String, device: MediaDevice?) {
        val enabled = device != null
        val enabled = device != null
        val data = MediaDeviceData(enabled, device?.iconWithoutBackground, device?.name)
        val data = MediaDeviceData(enabled, device?.iconWithoutBackground, device?.name)
@@ -122,6 +139,17 @@ class MediaDeviceManager @Inject constructor(
            localMediaManager.stopScan()
            localMediaManager.stopScan()
            localMediaManager.unregisterCallback(this)
            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 {
        override fun onDeviceListUpdate(devices: List<MediaDevice>?) = fgExecutor.execute {
            updateCurrent()
            updateCurrent()
        }
        }
+4 −1
Original line number Original line Diff line number Diff line
@@ -30,6 +30,7 @@ import androidx.test.filters.SmallTest
import com.android.settingslib.media.LocalMediaManager
import com.android.settingslib.media.LocalMediaManager
import com.android.settingslib.media.MediaDevice
import com.android.settingslib.media.MediaDevice
import com.android.systemui.SysuiTestCase
import com.android.systemui.SysuiTestCase
import com.android.systemui.dump.DumpManager
import com.android.systemui.util.concurrency.FakeExecutor
import com.android.systemui.util.concurrency.FakeExecutor
import com.android.systemui.util.time.FakeSystemClock
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 lmm: LocalMediaManager
    @Mock private lateinit var mr2: MediaRouter2Manager
    @Mock private lateinit var mr2: MediaRouter2Manager
    private lateinit var fakeExecutor: FakeExecutor
    private lateinit var fakeExecutor: FakeExecutor
    @Mock private lateinit var dumpster: DumpManager
    @Mock private lateinit var listener: MediaDeviceManager.Listener
    @Mock private lateinit var listener: MediaDeviceManager.Listener
    @Mock private lateinit var device: MediaDevice
    @Mock private lateinit var device: MediaDevice
    @Mock private lateinit var icon: Drawable
    @Mock private lateinit var icon: Drawable
@@ -85,7 +87,8 @@ public class MediaDeviceManagerTest : SysuiTestCase() {
    @Before
    @Before
    fun setUp() {
    fun setUp() {
        fakeExecutor = FakeExecutor(FakeSystemClock())
        fakeExecutor = FakeExecutor(FakeSystemClock())
        manager = MediaDeviceManager(context, lmmFactory, mr2, fakeExecutor, mediaDataManager)
        manager = MediaDeviceManager(context, lmmFactory, mr2, fakeExecutor, mediaDataManager,
                dumpster)
        manager.addListener(listener)
        manager.addListener(listener)


        // Configure mocks.
        // Configure mocks.