Merge "Make media device chip change languages on settings change" into tm-dev
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user