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

Commit b94b9c60 authored by Eric Laurent's avatar Eric Laurent Committed by Jean-Michel Trivi
Browse files

AudioService: fix volume group mute

Make sure the volume applied to audio policy by a volume group follows
the mute state of the associated public stream if any.

Bug: 156559315
Test: repro steps in bug
Test: atest AudioManagerTest#testVolume
Test: atest AudioVolumeGroupTest

Change-Id: I95e96f3524b27600c59a2cf093cd3309430d28ca
parent c357f2ca
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -5322,6 +5322,15 @@ public class AudioService extends IAudioService.Stub
        }

        private void setVolumeIndexInt(int index, int device, int flags) {
            // Reflect mute state of corresponding stream by forcing index to 0 if muted
            // Only set audio policy BT SCO stream volume to 0 when the stream is actually muted.
            // This allows RX path muting by the audio HAL only when explicitly muted but not when
            // index is just set to 0 to repect BT requirements
            if (mStreamStates[mPublicStreamType].isFullyMuted()) {
                index = 0;
            } else if (mPublicStreamType == AudioSystem.STREAM_BLUETOOTH_SCO && index == 0) {
                index = 1;
            }
            // Set the volume index
            AudioSystem.setVolumeIndexForAttributes(mAudioAttributes, index, device);
        }