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

Commit 9705323f authored by Eric Laurent's avatar Eric Laurent Committed by Android (Google) Code Review
Browse files

Merge "AudioService: fix muting of aliased volume streams" into tm-qpr-dev

parents 18a164d8 830817c3
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -3507,11 +3507,12 @@ public class AudioService extends IAudioService.Stub
        synchronized (VolumeStreamState.class) {
            List<Integer> streamsToMute = new ArrayList<>();
            for (int stream = 0; stream < mStreamStates.length; stream++) {
                if (streamAlias == mStreamVolumeAlias[stream]) {
                VolumeStreamState vss = mStreamStates[stream];
                if (streamAlias == mStreamVolumeAlias[stream] && vss.isMutable()) {
                    if (!(readCameraSoundForced()
                            && (mStreamStates[stream].getStreamType()
                            && (vss.getStreamType()
                                    == AudioSystem.STREAM_SYSTEM_ENFORCED))) {
                        boolean changed = mStreamStates[stream].mute(state, /* apply= */ false);
                        boolean changed = vss.mute(state, /* apply= */ false);
                        if (changed) {
                            streamsToMute.add(stream);
                        }
@@ -8384,7 +8385,7 @@ public class AudioService extends IAudioService.Stub
                    }
                    mVolumeGroupState.updateVolumeIndex(groupIndex, device);
                    // Only propage mute of stream when applicable
                    if (mIndexMin == 0 || isCallStream(mStreamType)) {
                    if (isMutable()) {
                        // For call stream, align mute only when muted, not when index is set to 0
                        mVolumeGroupState.mute(forceMuteState ? mIsMuted : groupIndex == 0);
                    }
@@ -8435,6 +8436,12 @@ public class AudioService extends IAudioService.Stub
            return mIsMuted || mIsMutedInternally;
        }
        private boolean isMutable() {
            return isStreamAffectedByMute(mStreamType)
                    && (mIndexMin == 0 || isCallStream(mStreamType));
        }
        /**
         * Mute/unmute the stream
         * @param state the new mute state