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

Commit eeba99b5 authored by Justin Weir's avatar Justin Weir Committed by Automerger Merge Worker
Browse files

Merge "Make media device chip change languages on settings change" into tm-dev am: b582a68f

parents 2aa13f0a b582a68f
Loading
Loading
Loading
Loading
+14 −5
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.dump.DumpManager
import com.android.systemui.media.muteawait.MediaMuteAwaitConnectionManager
import com.android.systemui.media.muteawait.MediaMuteAwaitConnectionManagerFactory
import com.android.systemui.statusbar.policy.ConfigurationController
import java.io.PrintWriter
import java.util.concurrent.Executor
import javax.inject.Inject
@@ -44,6 +45,7 @@ class MediaDeviceManager @Inject constructor(
    private val localMediaManagerFactory: LocalMediaManagerFactory,
    private val mr2manager: MediaRouter2Manager,
    private val muteAwaitConnectionManagerFactory: MediaMuteAwaitConnectionManagerFactory,
    private val configurationController: ConfigurationController,
    @Main private val fgExecutor: Executor,
    @Background private val bgExecutor: Executor,
    dumpManager: DumpManager
@@ -79,7 +81,7 @@ class MediaDeviceManager @Inject constructor(
            oldEntry?.stop()
        }
        var entry = entries[key]
        if (entry == null || entry?.token != data.token) {
        if (entry == null || entry.token != data.token) {
            entry?.stop()
            if (data.device != null) {
                // If we were already provided device info (e.g. from RCN), keep that and don't
@@ -118,10 +120,9 @@ class MediaDeviceManager @Inject constructor(
    override fun dump(pw: PrintWriter, args: Array<String>) {
        with(pw) {
            println("MediaDeviceManager state:")
            entries.forEach {
                key, entry ->
            entries.forEach { (key, entry) ->
                println("  key=$key")
                entry.dump(pw, args)
                entry.dump(pw)
            }
        }
    }
@@ -165,6 +166,12 @@ class MediaDeviceManager @Inject constructor(
        // expected to connect imminently, it should be displayed as the current device.
        private var aboutToConnectDeviceOverride: AboutToConnectDevice? = null

        private val configListener = object : ConfigurationController.ConfigurationListener {
            override fun onLocaleListChanged() {
                updateCurrent()
            }
        }

        @AnyThread
        fun start() = bgExecutor.execute {
            localMediaManager.registerCallback(this)
@@ -174,6 +181,7 @@ class MediaDeviceManager @Inject constructor(
            controller?.registerCallback(this)
            updateCurrent()
            started = true
            configurationController.addCallback(configListener)
        }

        @AnyThread
@@ -183,9 +191,10 @@ class MediaDeviceManager @Inject constructor(
            localMediaManager.stopScan()
            localMediaManager.unregisterCallback(this)
            muteAwaitConnectionManager?.stopListening()
            configurationController.removeCallback(configListener)
        }

        fun dump(pw: PrintWriter, args: Array<String>) {
        fun dump(pw: PrintWriter) {
            val routingSession = controller?.let {
                mr2manager.getRoutingSessionForMediaController(it)
            }
+4 −4
Original line number Diff line number Diff line
@@ -25,19 +25,17 @@ import android.media.session.MediaSession
import android.testing.AndroidTestingRunner
import android.testing.TestableLooper
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.media.muteawait.MediaMuteAwaitConnectionManager
import com.android.systemui.media.muteawait.MediaMuteAwaitConnectionManagerFactory
import com.android.systemui.statusbar.policy.ConfigurationController
import com.android.systemui.util.concurrency.FakeExecutor
import com.android.systemui.util.mockito.eq
import com.android.systemui.util.time.FakeSystemClock

import com.google.common.truth.Truth.assertThat

import org.junit.After
import org.junit.Before
import org.junit.Rule
@@ -50,8 +48,8 @@ import org.mockito.Mockito.mock
import org.mockito.Mockito.never
import org.mockito.Mockito.reset
import org.mockito.Mockito.verify
import org.mockito.Mockito.`when` as whenever
import org.mockito.junit.MockitoJUnit
import org.mockito.Mockito.`when` as whenever

private const val KEY = "TEST_KEY"
private const val KEY_OLD = "TEST_KEY_OLD"
@@ -81,6 +79,7 @@ public class MediaDeviceManagerTest : SysuiTestCase() {
    @Mock private lateinit var route: RoutingSessionInfo
    @Mock private lateinit var controller: MediaController
    @Mock private lateinit var playbackInfo: PlaybackInfo
    @Mock private lateinit var configurationController: ConfigurationController
    private lateinit var session: MediaSession
    private lateinit var mediaData: MediaData
    @JvmField @Rule val mockito = MockitoJUnit.rule()
@@ -94,6 +93,7 @@ public class MediaDeviceManagerTest : SysuiTestCase() {
                lmmFactory,
                mr2,
                muteAwaitFactory,
                configurationController,
                fakeFgExecutor,
                fakeBgExecutor,
                dumpster