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

Commit 6f86018b authored by Eric Laurent's avatar Eric Laurent Committed by Automerger Merge Worker
Browse files

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

parents c8909496 9705323f
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -3510,11 +3510,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);
                        }
@@ -8391,7 +8392,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);
                    }
@@ -8442,6 +8443,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