Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2314e310 authored by Anton Potapov's avatar Anton Potapov Committed by Android (Google) Code Review
Browse files

Merge "Don't show muted icon for the streams that can't be muted" into main

parents 8df3fb8a 312fa9ad
Loading
Loading
Loading
Loading
+2 −9
Original line number Diff line number Diff line
@@ -79,8 +79,6 @@ interface AudioRepository {
    suspend fun setMuted(audioStream: AudioStream, isMuted: Boolean): Boolean

    suspend fun setRingerMode(audioStream: AudioStream, mode: RingerMode)

    suspend fun isAffectedByMute(audioStream: AudioStream): Boolean
}

class AudioRepositoryImpl(
@@ -152,8 +150,9 @@ class AudioRepositoryImpl(
            minVolume = getMinVolume(audioStream),
            maxVolume = audioManager.getStreamMaxVolume(audioStream.value),
            volume = audioManager.getStreamVolume(audioStream.value),
            isAffectedByMute = audioManager.isStreamAffectedByMute(audioStream.value),
            isAffectedByRingerMode = audioManager.isStreamAffectedByRingerMode(audioStream.value),
            isMuted = audioManager.isStreamMute(audioStream.value)
            isMuted = audioManager.isStreamMute(audioStream.value),
        )
    }

@@ -187,12 +186,6 @@ class AudioRepositoryImpl(
        withContext(backgroundCoroutineContext) { audioManager.ringerMode = mode.value }
    }

    override suspend fun isAffectedByMute(audioStream: AudioStream): Boolean {
        return withContext(backgroundCoroutineContext) {
            audioManager.isStreamAffectedByMute(audioStream.value)
        }
    }

    private fun getMinVolume(stream: AudioStream): Int =
        try {
            audioManager.getStreamMinVolume(stream.value)
+7 −8
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ class AudioVolumeInteractor(
    suspend fun setVolume(audioStream: AudioStream, volume: Int) {
        val streamModel = getAudioStream(audioStream).first()
        val oldVolume = streamModel.volume
        if (volume != oldVolume) {
            audioRepository.setVolume(audioStream, volume)
            when {
                volume == streamModel.minVolume -> setMuted(audioStream, true)
@@ -57,6 +58,7 @@ class AudioVolumeInteractor(
                    setMuted(audioStream, false)
            }
        }
    }

    suspend fun setMuted(audioStream: AudioStream, isMuted: Boolean) {
        if (audioStream.value == AudioManager.STREAM_RING) {
@@ -90,9 +92,6 @@ class AudioVolumeInteractor(
        }
    }

    suspend fun isAffectedByMute(audioStream: AudioStream): Boolean =
        audioRepository.isAffectedByMute(audioStream)

    private suspend fun processVolume(
        audioStreamModel: AudioStreamModel,
        ringerMode: RingerMode,
+1 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ data class AudioStreamModel(
    val volume: Int,
    val minVolume: Int,
    val maxVolume: Int,
    val isAffectedByMute: Boolean,
    val isAffectedByRingerMode: Boolean,
    val isMuted: Boolean,
)
+3 −0
Original line number Diff line number Diff line
@@ -173,6 +173,7 @@ class AudioRepositoryTest {
                        volume = 50,
                        minVolume = MIN_VOLUME,
                        maxVolume = MAX_VOLUME,
                        isAffectedByMute = false,
                        isAffectedByRingerMode = false,
                        isMuted = false,
                    )
@@ -201,6 +202,7 @@ class AudioRepositoryTest {
                        volume = 0,
                        minVolume = MIN_VOLUME,
                        maxVolume = MAX_VOLUME,
                        isAffectedByMute = false,
                        isAffectedByRingerMode = false,
                        isMuted = true,
                    )
@@ -230,6 +232,7 @@ class AudioRepositoryTest {
                        volume = 0,
                        minVolume = MIN_VOLUME,
                        maxVolume = MAX_VOLUME,
                        isAffectedByMute = false,
                        isAffectedByRingerMode = false,
                        isMuted = false,
                    )
+6 −3
Original line number Diff line number Diff line
@@ -192,10 +192,12 @@ class AudioVolumeInteractorTest : SysuiTestCase() {
    fun streamNotAffectedByMute_isNotMutable() {
        with(kosmos) {
            testScope.runTest {
                audioRepository.setIsAffectedByMute(audioStream, false)
                val isMutable = underTest.isAffectedByMute(audioStream)
                val audioStreamModel by collectLastValue(underTest.getAudioStream(audioStream))
                audioRepository.setAudioStreamModel(
                    audioStreamModel!!.copy(isAffectedByMute = false)
                )

                assertThat(isMutable).isFalse()
                assertThat(audioStreamModel!!.isAffectedByMute).isFalse()
            }
        }
    }
@@ -230,6 +232,7 @@ class AudioVolumeInteractorTest : SysuiTestCase() {
            testScope.runTest {
                val audioStreamModel by
                    collectLastValue(audioRepository.getAudioStream(audioStream))
                underTest.setVolume(audioStream, audioStreamModel!!.maxVolume)
                runCurrent()

                underTest.setVolume(audioStream, audioStreamModel!!.minVolume)
Loading