summaryrefslogtreecommitdiffstats
path: root/core/java/android/preference/SeekBarVolumizer.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/preference/SeekBarVolumizer.java')
-rw-r--r--core/java/android/preference/SeekBarVolumizer.java11
1 files changed, 7 insertions, 4 deletions
diff --git a/core/java/android/preference/SeekBarVolumizer.java b/core/java/android/preference/SeekBarVolumizer.java
index 30da0e7..4bd085f 100644
--- a/core/java/android/preference/SeekBarVolumizer.java
+++ b/core/java/android/preference/SeekBarVolumizer.java
@@ -121,13 +121,10 @@ public class SeekBarVolumizer implements OnSeekBarChangeListener, Handler.Callba
protected void updateSeekBar() {
if (mNotificationOrRing && mRingerMode == AudioManager.RINGER_MODE_VIBRATE) {
- mSeekBar.setEnabled(true);
mSeekBar.setProgress(0);
} else if (mMuted) {
- mSeekBar.setEnabled(false);
mSeekBar.setProgress(0);
} else {
- mSeekBar.setEnabled(true);
mSeekBar.setProgress(mLastProgress > -1 ? mLastProgress : mOriginalStreamVolume);
}
}
@@ -136,6 +133,11 @@ public class SeekBarVolumizer implements OnSeekBarChangeListener, Handler.Callba
public boolean handleMessage(Message msg) {
switch (msg.what) {
case MSG_SET_STREAM_VOLUME:
+ if (mMuted && mLastProgress > 0) {
+ mAudioManager.adjustStreamVolume(mStreamType, AudioManager.ADJUST_UNMUTE, 0);
+ } else if (!mMuted && mLastProgress == 0) {
+ mAudioManager.adjustStreamVolume(mStreamType, AudioManager.ADJUST_MUTE, 0);
+ }
mAudioManager.setStreamVolume(mStreamType, mLastProgress,
AudioManager.FLAG_SHOW_UI_WARNINGS);
break;
@@ -375,7 +377,8 @@ public class SeekBarVolumizer implements OnSeekBarChangeListener, Handler.Callba
final boolean streamMatch = mNotificationOrRing ? isNotificationOrRing(streamType)
: (streamType == mStreamType);
if (mSeekBar != null && streamMatch && streamValue != -1) {
- final boolean muted = mAudioManager.isStreamMute(mStreamType);
+ final boolean muted = mAudioManager.isStreamMute(mStreamType)
+ || streamValue == 0;
mUiHandler.postUpdateSlider(streamValue, muted);
}
} else if (AudioManager.INTERNAL_RINGER_MODE_CHANGED_ACTION.equals(action)) {