Merge "AudioService: fix muting of aliased volume streams" into tm-qpr-dev
This commit is contained in:
@@ -3507,11 +3507,12 @@ public class AudioService extends IAudioService.Stub
|
|||||||
synchronized (VolumeStreamState.class) {
|
synchronized (VolumeStreamState.class) {
|
||||||
List<Integer> streamsToMute = new ArrayList<>();
|
List<Integer> streamsToMute = new ArrayList<>();
|
||||||
for (int stream = 0; stream < mStreamStates.length; stream++) {
|
for (int stream = 0; stream < mStreamStates.length; stream++) {
|
||||||
if (streamAlias == mStreamVolumeAlias[stream]) {
|
VolumeStreamState vss = mStreamStates[stream];
|
||||||
|
if (streamAlias == mStreamVolumeAlias[stream] && vss.isMutable()) {
|
||||||
if (!(readCameraSoundForced()
|
if (!(readCameraSoundForced()
|
||||||
&& (mStreamStates[stream].getStreamType()
|
&& (vss.getStreamType()
|
||||||
== AudioSystem.STREAM_SYSTEM_ENFORCED))) {
|
== AudioSystem.STREAM_SYSTEM_ENFORCED))) {
|
||||||
boolean changed = mStreamStates[stream].mute(state, /* apply= */ false);
|
boolean changed = vss.mute(state, /* apply= */ false);
|
||||||
if (changed) {
|
if (changed) {
|
||||||
streamsToMute.add(stream);
|
streamsToMute.add(stream);
|
||||||
}
|
}
|
||||||
@@ -8384,7 +8385,7 @@ public class AudioService extends IAudioService.Stub
|
|||||||
}
|
}
|
||||||
mVolumeGroupState.updateVolumeIndex(groupIndex, device);
|
mVolumeGroupState.updateVolumeIndex(groupIndex, device);
|
||||||
// Only propage mute of stream when applicable
|
// 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
|
// For call stream, align mute only when muted, not when index is set to 0
|
||||||
mVolumeGroupState.mute(forceMuteState ? mIsMuted : groupIndex == 0);
|
mVolumeGroupState.mute(forceMuteState ? mIsMuted : groupIndex == 0);
|
||||||
}
|
}
|
||||||
@@ -8435,6 +8436,12 @@ public class AudioService extends IAudioService.Stub
|
|||||||
return mIsMuted || mIsMutedInternally;
|
return mIsMuted || mIsMutedInternally;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private boolean isMutable() {
|
||||||
|
return isStreamAffectedByMute(mStreamType)
|
||||||
|
&& (mIndexMin == 0 || isCallStream(mStreamType));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Mute/unmute the stream
|
* Mute/unmute the stream
|
||||||
* @param state the new mute state
|
* @param state the new mute state
|
||||||
|
|||||||
Reference in New Issue
Block a user