AudioService: prevent unmute on vol raise when muted by ringer/zen
Handle raising volume from muted when the stream is muted by the ringer or zend mode, just like unmute commands, and prevent the unmute. This fixes an issue where in silent/vibrate mode where STREAM_NOTIFICATION is muted, pressing the volume up button while a notification is silently playing, would cause notifications to become unmuted. Bug: 284257295 Test: atest CtsMediaAudioTestCases:android.media.audio.cts.AudioManagerTest Change-Id: I0ebc15c6b4430db0737b8dcbeba9346211ddcf0d
This commit is contained in:
@@ -3277,6 +3277,7 @@ public class AudioService extends IAudioService.Stub
|
||||
if (mUserSelectedVolumeControlStream) { // implies mVolumeControlStream != -1
|
||||
streamType = mVolumeControlStream;
|
||||
} else {
|
||||
// TODO discard activity on a muted stream?
|
||||
final int maybeActiveStreamType = getActiveStreamType(suggestedStreamType);
|
||||
final boolean activeForReal;
|
||||
if (maybeActiveStreamType == AudioSystem.STREAM_RING
|
||||
@@ -3480,9 +3481,10 @@ public class AudioService extends IAudioService.Stub
|
||||
}
|
||||
} else if (isStreamMutedByRingerOrZenMode(streamTypeAlias) && streamState.mIsMuted) {
|
||||
// if the stream is currently muted streams by ringer/zen mode
|
||||
// then it cannot be unmuted (without FLAG_ALLOW_RINGER_MODES)
|
||||
// then it cannot be unmuted (without FLAG_ALLOW_RINGER_MODES) with an unmute or raise
|
||||
if (direction == AudioManager.ADJUST_TOGGLE_MUTE
|
||||
|| direction == AudioManager.ADJUST_UNMUTE) {
|
||||
|| direction == AudioManager.ADJUST_UNMUTE
|
||||
|| direction == AudioManager.ADJUST_RAISE) {
|
||||
adjustVolume = false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user