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.dump.DumpManager
|
||||||
import com.android.systemui.media.muteawait.MediaMuteAwaitConnectionManager
|
import com.android.systemui.media.muteawait.MediaMuteAwaitConnectionManager
|
||||||
import com.android.systemui.media.muteawait.MediaMuteAwaitConnectionManagerFactory
|
import com.android.systemui.media.muteawait.MediaMuteAwaitConnectionManagerFactory
|
||||||
|
import com.android.systemui.statusbar.policy.ConfigurationController
|
||||||
import java.io.PrintWriter
|
import java.io.PrintWriter
|
||||||
import java.util.concurrent.Executor
|
import java.util.concurrent.Executor
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@@ -44,6 +45,7 @@ class MediaDeviceManager @Inject constructor(
|
|||||||
private val localMediaManagerFactory: LocalMediaManagerFactory,
|
private val localMediaManagerFactory: LocalMediaManagerFactory,
|
||||||
private val mr2manager: MediaRouter2Manager,
|
private val mr2manager: MediaRouter2Manager,
|
||||||
private val muteAwaitConnectionManagerFactory: MediaMuteAwaitConnectionManagerFactory,
|
private val muteAwaitConnectionManagerFactory: MediaMuteAwaitConnectionManagerFactory,
|
||||||
|
private val configurationController: ConfigurationController,
|
||||||
@Main private val fgExecutor: Executor,
|
@Main private val fgExecutor: Executor,
|
||||||
@Background private val bgExecutor: Executor,
|
@Background private val bgExecutor: Executor,
|
||||||
dumpManager: DumpManager
|
dumpManager: DumpManager
|
||||||
@@ -79,7 +81,7 @@ class MediaDeviceManager @Inject constructor(
|
|||||||
oldEntry?.stop()
|
oldEntry?.stop()
|
||||||
}
|
}
|
||||||
var entry = entries[key]
|
var entry = entries[key]
|
||||||
if (entry == null || entry?.token != data.token) {
|
if (entry == null || entry.token != data.token) {
|
||||||
entry?.stop()
|
entry?.stop()
|
||||||
if (data.device != null) {
|
if (data.device != null) {
|
||||||
// If we were already provided device info (e.g. from RCN), keep that and don't
|
// 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>) {
|
override fun dump(pw: PrintWriter, args: Array<String>) {
|
||||||
with(pw) {
|
with(pw) {
|
||||||
println("MediaDeviceManager state:")
|
println("MediaDeviceManager state:")
|
||||||
entries.forEach {
|
entries.forEach { (key, entry) ->
|
||||||
key, entry ->
|
|
||||||
println(" key=$key")
|
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.
|
// expected to connect imminently, it should be displayed as the current device.
|
||||||
private var aboutToConnectDeviceOverride: AboutToConnectDevice? = null
|
private var aboutToConnectDeviceOverride: AboutToConnectDevice? = null
|
||||||
|
|
||||||
|
private val configListener = object : ConfigurationController.ConfigurationListener {
|
||||||
|
override fun onLocaleListChanged() {
|
||||||
|
updateCurrent()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@AnyThread
|
@AnyThread
|
||||||
fun start() = bgExecutor.execute {
|
fun start() = bgExecutor.execute {
|
||||||
localMediaManager.registerCallback(this)
|
localMediaManager.registerCallback(this)
|
||||||
@@ -174,6 +181,7 @@ class MediaDeviceManager @Inject constructor(
|
|||||||
controller?.registerCallback(this)
|
controller?.registerCallback(this)
|
||||||
updateCurrent()
|
updateCurrent()
|
||||||
started = true
|
started = true
|
||||||
|
configurationController.addCallback(configListener)
|
||||||
}
|
}
|
||||||
|
|
||||||
@AnyThread
|
@AnyThread
|
||||||
@@ -183,9 +191,10 @@ class MediaDeviceManager @Inject constructor(
|
|||||||
localMediaManager.stopScan()
|
localMediaManager.stopScan()
|
||||||
localMediaManager.unregisterCallback(this)
|
localMediaManager.unregisterCallback(this)
|
||||||
muteAwaitConnectionManager?.stopListening()
|
muteAwaitConnectionManager?.stopListening()
|
||||||
|
configurationController.removeCallback(configListener)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun dump(pw: PrintWriter, args: Array<String>) {
|
fun dump(pw: PrintWriter) {
|
||||||
val routingSession = controller?.let {
|
val routingSession = controller?.let {
|
||||||
mr2manager.getRoutingSessionForMediaController(it)
|
mr2manager.getRoutingSessionForMediaController(it)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -25,19 +25,17 @@ import android.media.session.MediaSession
|
|||||||
import android.testing.AndroidTestingRunner
|
import android.testing.AndroidTestingRunner
|
||||||
import android.testing.TestableLooper
|
import android.testing.TestableLooper
|
||||||
import androidx.test.filters.SmallTest
|
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.dump.DumpManager
|
||||||
import com.android.systemui.media.muteawait.MediaMuteAwaitConnectionManager
|
import com.android.systemui.media.muteawait.MediaMuteAwaitConnectionManager
|
||||||
import com.android.systemui.media.muteawait.MediaMuteAwaitConnectionManagerFactory
|
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.concurrency.FakeExecutor
|
||||||
import com.android.systemui.util.mockito.eq
|
import com.android.systemui.util.mockito.eq
|
||||||
import com.android.systemui.util.time.FakeSystemClock
|
import com.android.systemui.util.time.FakeSystemClock
|
||||||
|
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
|
|
||||||
import org.junit.After
|
import org.junit.After
|
||||||
import org.junit.Before
|
import org.junit.Before
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
@@ -50,8 +48,8 @@ import org.mockito.Mockito.mock
|
|||||||
import org.mockito.Mockito.never
|
import org.mockito.Mockito.never
|
||||||
import org.mockito.Mockito.reset
|
import org.mockito.Mockito.reset
|
||||||
import org.mockito.Mockito.verify
|
import org.mockito.Mockito.verify
|
||||||
import org.mockito.Mockito.`when` as whenever
|
|
||||||
import org.mockito.junit.MockitoJUnit
|
import org.mockito.junit.MockitoJUnit
|
||||||
|
import org.mockito.Mockito.`when` as whenever
|
||||||
|
|
||||||
private const val KEY = "TEST_KEY"
|
private const val KEY = "TEST_KEY"
|
||||||
private const val KEY_OLD = "TEST_KEY_OLD"
|
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 route: RoutingSessionInfo
|
||||||
@Mock private lateinit var controller: MediaController
|
@Mock private lateinit var controller: MediaController
|
||||||
@Mock private lateinit var playbackInfo: PlaybackInfo
|
@Mock private lateinit var playbackInfo: PlaybackInfo
|
||||||
|
@Mock private lateinit var configurationController: ConfigurationController
|
||||||
private lateinit var session: MediaSession
|
private lateinit var session: MediaSession
|
||||||
private lateinit var mediaData: MediaData
|
private lateinit var mediaData: MediaData
|
||||||
@JvmField @Rule val mockito = MockitoJUnit.rule()
|
@JvmField @Rule val mockito = MockitoJUnit.rule()
|
||||||
@@ -94,6 +93,7 @@ public class MediaDeviceManagerTest : SysuiTestCase() {
|
|||||||
lmmFactory,
|
lmmFactory,
|
||||||
mr2,
|
mr2,
|
||||||
muteAwaitFactory,
|
muteAwaitFactory,
|
||||||
|
configurationController,
|
||||||
fakeFgExecutor,
|
fakeFgExecutor,
|
||||||
fakeBgExecutor,
|
fakeBgExecutor,
|
||||||
dumpster
|
dumpster
|
||||||
|
|||||||
Reference in New Issue
Block a user