diff options
| author | 2024-07-04 17:11:43 +0000 | |
|---|---|---|
| committer | 2024-07-04 17:11:43 +0000 | |
| commit | ee9db8e964d68a9305c78b51d370ba71fd9f92c7 (patch) | |
| tree | 0a743117725f1d12b61b9e96c73866d416cb9a47 | |
| parent | b40961f424cbeee984efa9b0a91a0c196b085081 (diff) | |
| parent | d0f76880d65ef821d875101b28365bffb7c604d2 (diff) | |
Merge "Take isAffectedByMute into account when trying to mute a stream" into main
3 files changed, 25 insertions, 3 deletions
| diff --git a/packages/SettingsLib/src/com/android/settingslib/volume/domain/interactor/AudioVolumeInteractor.kt b/packages/SettingsLib/src/com/android/settingslib/volume/domain/interactor/AudioVolumeInteractor.kt index 202ff400782f..bdd582d5130b 100644 --- a/packages/SettingsLib/src/com/android/settingslib/volume/domain/interactor/AudioVolumeInteractor.kt +++ b/packages/SettingsLib/src/com/android/settingslib/volume/domain/interactor/AudioVolumeInteractor.kt @@ -61,6 +61,10 @@ class AudioVolumeInteractor(      }      suspend fun setMuted(audioStream: AudioStream, isMuted: Boolean) { +        val streamModel = getAudioStream(audioStream).first() +        if (!streamModel.isAffectedByMute) { +            return +        }          if (audioStream.value == AudioManager.STREAM_RING) {              val mode =                  if (isMuted) AudioManager.RINGER_MODE_VIBRATE else AudioManager.RINGER_MODE_NORMAL diff --git a/packages/SystemUI/multivalentTests/src/com/android/systemui/volume/domain/interactor/AudioVolumeInteractorTest.kt b/packages/SystemUI/multivalentTests/src/com/android/systemui/volume/domain/interactor/AudioVolumeInteractorTest.kt index 6e49e431bd80..8a68417f0ef5 100644 --- a/packages/SystemUI/multivalentTests/src/com/android/systemui/volume/domain/interactor/AudioVolumeInteractorTest.kt +++ b/packages/SystemUI/multivalentTests/src/com/android/systemui/volume/domain/interactor/AudioVolumeInteractorTest.kt @@ -35,6 +35,7 @@ import com.google.common.truth.Truth.assertThat  import kotlinx.coroutines.ExperimentalCoroutinesApi  import kotlinx.coroutines.test.runCurrent  import kotlinx.coroutines.test.runTest +import org.junit.Before  import org.junit.Test  import org.junit.runner.RunWith @@ -48,6 +49,20 @@ class AudioVolumeInteractorTest : SysuiTestCase() {      private val underTest: AudioVolumeInteractor =          with(kosmos) { AudioVolumeInteractor(audioRepository, notificationsSoundPolicyInteractor) } +    @Before +    fun setUp() = +        with(kosmos) { +            audioRepository.setAudioStreamModel( +                audioRepository.getAudioStream(audioStream).value.copy(isAffectedByMute = true) +            ) +            audioRepository.setAudioStreamModel( +                audioRepository +                    .getAudioStream(AudioStream(AudioManager.STREAM_RING)) +                    .value +                    .copy(isAffectedByMute = true) +            ) +        } +      @Test      fun setMuted_mutesStream() {          with(kosmos) { @@ -189,10 +204,14 @@ class AudioVolumeInteractorTest : SysuiTestCase() {              testScope.runTest {                  val audioStreamModel by collectLastValue(underTest.getAudioStream(audioStream))                  audioRepository.setAudioStreamModel( -                    audioStreamModel!!.copy(isAffectedByMute = false) +                    audioStreamModel!!.copy(isAffectedByMute = false, isMuted = false)                  ) +                underTest.setMuted(audioStream, true) +                runCurrent() +                  assertThat(audioStreamModel!!.isAffectedByMute).isFalse() +                assertThat(audioStreamModel!!.isMuted).isFalse()              }          }      } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/volume/data/repository/FakeAudioRepository.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/volume/data/repository/FakeAudioRepository.kt index fcea9e7b2a3f..135cb14a3497 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/volume/data/repository/FakeAudioRepository.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/volume/data/repository/FakeAudioRepository.kt @@ -22,7 +22,6 @@ import com.android.settingslib.volume.data.repository.AudioRepository  import com.android.settingslib.volume.shared.model.AudioStream  import com.android.settingslib.volume.shared.model.AudioStreamModel  import com.android.settingslib.volume.shared.model.RingerMode -import kotlinx.coroutines.flow.Flow  import kotlinx.coroutines.flow.MutableStateFlow  import kotlinx.coroutines.flow.StateFlow  import kotlinx.coroutines.flow.asStateFlow @@ -61,7 +60,7 @@ class FakeAudioRepository : AudioRepository {              )          } -    override fun getAudioStream(audioStream: AudioStream): Flow<AudioStreamModel> = +    override fun getAudioStream(audioStream: AudioStream): StateFlow<AudioStreamModel> =          getAudioStreamModelState(audioStream).asStateFlow()      override suspend fun setVolume(audioStream: AudioStream, volume: Int) { |