From 75ae23c09674bede6d3fe5ec05a6fba47142e2d5 Mon Sep 17 00:00:00 2001 From: John Spurlock Date: Tue, 2 Jun 2015 16:26:43 -0400 Subject: [PATCH] Audio policy: setting explicit non-zero volume unmutes the stream. And vice versa. Bug: 21584884 Change-Id: I2cd6a84ab40edba4c6fc2b219693e0d4f0527d8d --- .../com/android/systemui/volume/VolumeDialog.java | 15 --------------- .../com/android/server/audio/AudioService.java | 7 +++++-- 2 files changed, 5 insertions(+), 17 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java index 09f7074a9964f..310a64cc78136 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java @@ -726,11 +726,6 @@ public class VolumeDialog { } row.slider.setProgress(newProgress); } - if (mAutomute && mShowing) { - if (vlevel == 0 && !row.ss.muted && row.stream == AudioManager.STREAM_MUSIC) { - mController.setStreamMute(row.stream, true); - } - } } } @@ -934,16 +929,6 @@ public class VolumeDialog { final int userLevel = getImpliedLevel(seekBar, progress); if (mRow.ss.level != userLevel || mRow.ss.muted && userLevel > 0) { mRow.userAttempt = SystemClock.uptimeMillis(); - if (mAutomute) { - if (mRow.stream != AudioManager.STREAM_RING) { - if (userLevel > 0 && mRow.ss.muted) { - mController.setStreamMute(mRow.stream, false); - } - if (userLevel == 0 && mRow.ss.muteSupported && !mRow.ss.muted) { - mController.setStreamMute(mRow.stream, true); - } - } - } if (mRow.requestedLevel != userLevel) { mController.setStreamVolume(mRow.stream, userLevel); mRow.requestedLevel = userLevel; diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index 71351915c6438..cd467bd36d6b4 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -1368,10 +1368,11 @@ public class AudioService extends IAudioService.Stub { private void onSetStreamVolume(int streamType, int index, int flags, int device, String caller) { - setStreamVolumeInt(mStreamVolumeAlias[streamType], index, device, false, caller); + final int stream = mStreamVolumeAlias[streamType]; + setStreamVolumeInt(stream, index, device, false, caller); // setting volume on ui sounds stream type also controls silent mode if (((flags & AudioManager.FLAG_ALLOW_RINGER_MODES) != 0) || - (mStreamVolumeAlias[streamType] == getUiSoundsStreamType())) { + (stream == getUiSoundsStreamType())) { int newRingerMode; if (index == 0) { newRingerMode = mHasVibrator ? AudioManager.RINGER_MODE_VIBRATE @@ -1382,6 +1383,8 @@ public class AudioService extends IAudioService.Stub { } setRingerMode(newRingerMode, TAG + ".onSetStreamVolume", false /*external*/); } + // setting non-zero volume for a muted stream unmutes the stream and vice versa + mStreamStates[stream].mute(index == 0); } /** @see AudioManager#setStreamVolume(int, int, int) */