diff options
author | John Spurlock <jspurlock@google.com> | 2015-06-09 14:41:52 -0400 |
---|---|---|
committer | John Spurlock <jspurlock@google.com> | 2015-06-09 14:41:52 -0400 |
commit | b0a2e5fbc57827947ed331a6f0afe6a76a7fe7a4 (patch) | |
tree | 5c7b2dc01806ff01eff24c3a7fdc8972f29a1681 /packages/SystemUI/src | |
parent | 281dffb76f1bb0e0e9d012fb9b111b040f4745d7 (diff) | |
download | frameworks_base-b0a2e5fbc57827947ed331a6f0afe6a76a7fe7a4.zip frameworks_base-b0a2e5fbc57827947ed331a6f0afe6a76a7fe7a4.tar.gz frameworks_base-b0a2e5fbc57827947ed331a6f0afe6a76a7fe7a4.tar.bz2 |
Volume: Show disabled level on slider when muted by zen.
Bug: 21267436
Change-Id: I366b19e443589be7cc989f1c501801a7f49f0195
Diffstat (limited to 'packages/SystemUI/src')
-rw-r--r-- | packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java | 29 |
1 files changed, 12 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 310a64c..29bea4d 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialog.java @@ -386,18 +386,8 @@ public class VolumeDialog { } } } else { - if (mAutomute && !row.ss.muteSupported) { - final boolean vmute = row.ss.level == 0; - mController.setStreamVolume(stream, vmute ? row.lastAudibleLevel : 0); - } else { - final boolean mute = !row.ss.muted; - mController.setStreamMute(stream, mute); - if (mAutomute) { - if (!mute && row.ss.level == 0) { - mController.setStreamVolume(stream, 1); - } - } - } + final boolean vmute = row.ss.level == 0; + mController.setStreamVolume(stream, vmute ? row.lastAudibleLevel : 0); } row.userAttempt = 0; // reset the grace period, slider should update immediately } @@ -589,6 +579,9 @@ public class VolumeDialog { if (ss.level > 0) { row.lastAudibleLevel = ss.level; } + if (ss.level == row.requestedLevel) { + row.requestedLevel = -1; + } final boolean isRingStream = row.stream == AudioManager.STREAM_RING; final boolean isSystemStream = row.stream == AudioManager.STREAM_SYSTEM; final boolean isAlarmStream = row.stream == AudioManager.STREAM_ALARM; @@ -664,7 +657,10 @@ public class VolumeDialog { row.icon.setContentDescription(ss.name); // update slider - updateVolumeRowSliderH(row, zenMuted); + final boolean enableSlider = !zenMuted; + final int vlevel = row.ss.muted && (isRingVibrate || !isRingStream && !zenMuted) ? 0 + : row.ss.level; + updateVolumeRowSliderH(row, enableSlider, vlevel); } private void updateVolumeRowSliderTintH(VolumeRow row, boolean isActive) { @@ -676,8 +672,8 @@ public class VolumeDialog { row.slider.setThumbTintList(tint); } - private void updateVolumeRowSliderH(VolumeRow row, boolean zenMuted) { - row.slider.setEnabled(!zenMuted); + private void updateVolumeRowSliderH(VolumeRow row, boolean enable, int vlevel) { + row.slider.setEnabled(enable); updateVolumeRowSliderTintH(row, row.stream == mActiveStream); if (row.tracking) { return; // don't update if user is sliding @@ -694,7 +690,6 @@ public class VolumeDialog { row.userAttempt + USER_ATTEMPT_GRACE_PERIOD); return; // don't update if visible and in grace period } - final int vlevel = row.ss.muted ? 0 : row.ss.level; if (vlevel == level) { if (mShowing && rowVisible) { return; // don't clamp if visible @@ -1018,7 +1013,7 @@ public class VolumeDialog { private StreamState ss; private long userAttempt; // last user-driven slider change private boolean tracking; // tracking slider touch - private int requestedLevel; + private int requestedLevel = -1; // pending user-requested level via progress changed private int iconRes; private int iconMuteRes; private boolean important; |