From 60f42b098d4e32bc8d38243c0270b87814d85883 Mon Sep 17 00:00:00 2001 From: Yiyi Shen Date: Tue, 13 Aug 2024 18:20:09 +0800 Subject: Change inAudioSharing to StateFlow Test: atest Bug: 336716411 Flag: com.android.settingslib.flags.volume_dialog_audio_sharing_fix Change-Id: I3481d8bc922387f74a21b92493c7e0a2e534a68c --- .../settingslib/volume/data/repository/AudioSharingRepository.kt | 7 ++++--- .../systemui/volume/data/repository/FakeAudioSharingRepository.kt | 3 +-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/SettingsLib/src/com/android/settingslib/volume/data/repository/AudioSharingRepository.kt b/packages/SettingsLib/src/com/android/settingslib/volume/data/repository/AudioSharingRepository.kt index ebba7f152b90..2f8105ae461d 100644 --- a/packages/SettingsLib/src/com/android/settingslib/volume/data/repository/AudioSharingRepository.kt +++ b/packages/SettingsLib/src/com/android/settingslib/volume/data/repository/AudioSharingRepository.kt @@ -63,7 +63,7 @@ typealias GroupIdToVolumes = Map /** Provides audio sharing functionality. */ interface AudioSharingRepository { /** Whether the device is in audio sharing. */ - val inAudioSharing: Flow + val inAudioSharing: StateFlow /** The primary headset groupId in audio sharing. */ val primaryGroupId: StateFlow @@ -101,7 +101,7 @@ class AudioSharingRepositoryImpl( .flowOn(backgroundCoroutineContext) .stateIn(coroutineScope, SharingStarted.WhileSubscribed(), false) - override val inAudioSharing: Flow = + override val inAudioSharing: StateFlow = isAudioSharingProfilesReady.flatMapLatest { ready -> if (ready) { btManager.profileManager.leAudioBroadcastProfile.onBroadcastStartedOrStopped @@ -113,6 +113,7 @@ class AudioSharingRepositoryImpl( flowOf(false) } } + .stateIn(coroutineScope, SharingStarted.WhileSubscribed(), false) private val primaryChange: Flow = callbackFlow { val callback = @@ -254,7 +255,7 @@ class AudioSharingRepositoryImpl( } class AudioSharingRepositoryEmptyImpl : AudioSharingRepository { - override val inAudioSharing: Flow = flowOf(false) + override val inAudioSharing: StateFlow = MutableStateFlow(false) override val primaryGroupId: StateFlow = MutableStateFlow(BluetoothCsipSetCoordinator.GROUP_ID_INVALID) override val secondaryGroupId: StateFlow = diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/volume/data/repository/FakeAudioSharingRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/volume/data/repository/FakeAudioSharingRepository.kt index 0a617d17b033..a4719e5a2492 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/volume/data/repository/FakeAudioSharingRepository.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/volume/data/repository/FakeAudioSharingRepository.kt @@ -18,7 +18,6 @@ package com.android.systemui.volume.data.repository import com.android.settingslib.volume.data.repository.AudioSharingRepository import com.android.settingslib.volume.data.repository.GroupIdToVolumes -import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.StateFlow @@ -30,7 +29,7 @@ class FakeAudioSharingRepository : AudioSharingRepository { MutableStateFlow(TEST_GROUP_ID_INVALID) private val mutableVolumeMap: MutableStateFlow = MutableStateFlow(emptyMap()) - override val inAudioSharing: Flow = mutableInAudioSharing + override val inAudioSharing: StateFlow = mutableInAudioSharing override val primaryGroupId: StateFlow = mutablePrimaryGroupId override val secondaryGroupId: StateFlow = mutableSecondaryGroupId override val volumeMap: StateFlow = mutableVolumeMap -- cgit v1.2.3-59-g8ed1b