Loading packages/SettingsLib/src/com/android/settingslib/volume/data/repository/LocalMediaRepository.kt +3 −3 Original line number Diff line number Diff line Loading @@ -81,7 +81,7 @@ class LocalMediaRepositoryImpl( localMediaManager.unregisterCallback(callback) } } .shareIn(coroutineScope, SharingStarted.WhileSubscribed(), replay = 0) .shareIn(coroutineScope, SharingStarted.Eagerly, replay = 0) override val currentConnectedDevice: StateFlow<MediaDevice?> = merge(devicesChanges, mediaDevicesUpdates) Loading @@ -89,8 +89,8 @@ class LocalMediaRepositoryImpl( .onStart { emit(localMediaManager.currentConnectedDevice) } .stateIn( coroutineScope, SharingStarted.WhileSubscribed(), localMediaManager.currentConnectedDevice SharingStarted.Eagerly, localMediaManager.currentConnectedDevice, ) private sealed interface DevicesUpdate { Loading packages/SystemUI/src/com/android/systemui/volume/panel/component/mediaoutput/data/repository/LocalMediaRepositoryFactory.kt +5 −4 Original line number Diff line number Diff line Loading @@ -19,14 +19,13 @@ import com.android.settingslib.volume.data.repository.LocalMediaRepository import com.android.settingslib.volume.data.repository.LocalMediaRepositoryImpl import com.android.settingslib.volume.shared.AudioManagerEventsReceiver import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.media.controls.util.LocalMediaManagerFactory import javax.inject.Inject import kotlinx.coroutines.CoroutineScope interface LocalMediaRepositoryFactory { fun create(packageName: String?): LocalMediaRepository fun create(packageName: String?, coroutineScope: CoroutineScope): LocalMediaRepository } @SysUISingleton Loading @@ -35,10 +34,12 @@ class LocalMediaRepositoryFactoryImpl constructor( private val eventsReceiver: AudioManagerEventsReceiver, private val localMediaManagerFactory: LocalMediaManagerFactory, @Application private val coroutineScope: CoroutineScope, ) : LocalMediaRepositoryFactory { override fun create(packageName: String?): LocalMediaRepository = override fun create( packageName: String?, coroutineScope: CoroutineScope ): LocalMediaRepository = LocalMediaRepositoryImpl( eventsReceiver, localMediaManagerFactory.create(packageName), Loading packages/SystemUI/src/com/android/systemui/volume/panel/component/mediaoutput/domain/interactor/MediaOutputInteractor.kt +5 −6 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import javax.inject.Inject import kotlin.coroutines.CoroutineContext import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow Loading @@ -46,6 +47,7 @@ import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.merge import kotlinx.coroutines.flow.onStart import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.flow.transformLatest import kotlinx.coroutines.withContext /** Provides observable models about the current media session state. */ Loading Loading @@ -105,12 +107,9 @@ constructor( .filterData() .map { it?.packageName } .distinctUntilChanged() .map { localMediaRepositoryFactory.create(it) } .stateIn( coroutineScope, SharingStarted.Eagerly, localMediaRepositoryFactory.create(null) ) .transformLatest { coroutineScope { emit(localMediaRepositoryFactory.create(it, this)) } } /** Currently connected [MediaDevice]. */ val currentConnectedDevice: Flow<MediaDevice?> = Loading packages/SystemUI/tests/utils/src/com/android/systemui/volume/panel/component/mediaoutput/data/repository/FakeLocalMediaRepositoryFactory.kt +5 −2 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.volume.panel.component.mediaoutput.data.repository import com.android.settingslib.volume.data.repository.LocalMediaRepository import kotlinx.coroutines.CoroutineScope class FakeLocalMediaRepositoryFactory(private val defaultProvider: () -> LocalMediaRepository) : LocalMediaRepositoryFactory { Loading @@ -27,6 +28,8 @@ class FakeLocalMediaRepositoryFactory(private val defaultProvider: () -> LocalMe repositories[packageName] = localMediaRepository } override fun create(packageName: String?): LocalMediaRepository = repositories[packageName] ?: defaultProvider() override fun create( packageName: String?, coroutineScope: CoroutineScope ): LocalMediaRepository = repositories[packageName] ?: defaultProvider() } Loading
packages/SettingsLib/src/com/android/settingslib/volume/data/repository/LocalMediaRepository.kt +3 −3 Original line number Diff line number Diff line Loading @@ -81,7 +81,7 @@ class LocalMediaRepositoryImpl( localMediaManager.unregisterCallback(callback) } } .shareIn(coroutineScope, SharingStarted.WhileSubscribed(), replay = 0) .shareIn(coroutineScope, SharingStarted.Eagerly, replay = 0) override val currentConnectedDevice: StateFlow<MediaDevice?> = merge(devicesChanges, mediaDevicesUpdates) Loading @@ -89,8 +89,8 @@ class LocalMediaRepositoryImpl( .onStart { emit(localMediaManager.currentConnectedDevice) } .stateIn( coroutineScope, SharingStarted.WhileSubscribed(), localMediaManager.currentConnectedDevice SharingStarted.Eagerly, localMediaManager.currentConnectedDevice, ) private sealed interface DevicesUpdate { Loading
packages/SystemUI/src/com/android/systemui/volume/panel/component/mediaoutput/data/repository/LocalMediaRepositoryFactory.kt +5 −4 Original line number Diff line number Diff line Loading @@ -19,14 +19,13 @@ import com.android.settingslib.volume.data.repository.LocalMediaRepository import com.android.settingslib.volume.data.repository.LocalMediaRepositoryImpl import com.android.settingslib.volume.shared.AudioManagerEventsReceiver import com.android.systemui.dagger.SysUISingleton import com.android.systemui.dagger.qualifiers.Application import com.android.systemui.media.controls.util.LocalMediaManagerFactory import javax.inject.Inject import kotlinx.coroutines.CoroutineScope interface LocalMediaRepositoryFactory { fun create(packageName: String?): LocalMediaRepository fun create(packageName: String?, coroutineScope: CoroutineScope): LocalMediaRepository } @SysUISingleton Loading @@ -35,10 +34,12 @@ class LocalMediaRepositoryFactoryImpl constructor( private val eventsReceiver: AudioManagerEventsReceiver, private val localMediaManagerFactory: LocalMediaManagerFactory, @Application private val coroutineScope: CoroutineScope, ) : LocalMediaRepositoryFactory { override fun create(packageName: String?): LocalMediaRepository = override fun create( packageName: String?, coroutineScope: CoroutineScope ): LocalMediaRepository = LocalMediaRepositoryImpl( eventsReceiver, localMediaManagerFactory.create(packageName), Loading
packages/SystemUI/src/com/android/systemui/volume/panel/component/mediaoutput/domain/interactor/MediaOutputInteractor.kt +5 −6 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import javax.inject.Inject import kotlin.coroutines.CoroutineContext import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.coroutineScope import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow Loading @@ -46,6 +47,7 @@ import kotlinx.coroutines.flow.map import kotlinx.coroutines.flow.merge import kotlinx.coroutines.flow.onStart import kotlinx.coroutines.flow.stateIn import kotlinx.coroutines.flow.transformLatest import kotlinx.coroutines.withContext /** Provides observable models about the current media session state. */ Loading Loading @@ -105,12 +107,9 @@ constructor( .filterData() .map { it?.packageName } .distinctUntilChanged() .map { localMediaRepositoryFactory.create(it) } .stateIn( coroutineScope, SharingStarted.Eagerly, localMediaRepositoryFactory.create(null) ) .transformLatest { coroutineScope { emit(localMediaRepositoryFactory.create(it, this)) } } /** Currently connected [MediaDevice]. */ val currentConnectedDevice: Flow<MediaDevice?> = Loading
packages/SystemUI/tests/utils/src/com/android/systemui/volume/panel/component/mediaoutput/data/repository/FakeLocalMediaRepositoryFactory.kt +5 −2 Original line number Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.systemui.volume.panel.component.mediaoutput.data.repository import com.android.settingslib.volume.data.repository.LocalMediaRepository import kotlinx.coroutines.CoroutineScope class FakeLocalMediaRepositoryFactory(private val defaultProvider: () -> LocalMediaRepository) : LocalMediaRepositoryFactory { Loading @@ -27,6 +28,8 @@ class FakeLocalMediaRepositoryFactory(private val defaultProvider: () -> LocalMe repositories[packageName] = localMediaRepository } override fun create(packageName: String?): LocalMediaRepository = repositories[packageName] ?: defaultProvider() override fun create( packageName: String?, coroutineScope: CoroutineScope ): LocalMediaRepository = repositories[packageName] ?: defaultProvider() }