@@ -296,41 +296,33 @@ public void onReceive(Context context, Intent intent) {
296296
297297 private boolean isMuted (int streamType ) {
298298 if (streamType == STREAM_MASTER ) {
299- return mAudioService .isMasterMute ();
299+ return mAudioManager .isMasterMute ();
300300 } else {
301- return mAudioService .isStreamMute (streamType );
301+ return mAudioManager .isStreamMute (streamType );
302302 }
303303 }
304304
305305 private int getStreamMaxVolume (int streamType ) {
306306 if (streamType == STREAM_MASTER ) {
307- return mAudioService .getMasterMaxVolume ();
307+ return mAudioManager .getMasterMaxVolume ();
308308 } else {
309- return mAudioService .getStreamMaxVolume (streamType );
309+ return mAudioManager .getStreamMaxVolume (streamType );
310310 }
311311 }
312312
313313 private int getStreamVolume (int streamType ) {
314314 if (streamType == STREAM_MASTER ) {
315- return mAudioService .getMasterVolume ();
315+ return mAudioManager .getMasterVolume ();
316316 } else {
317- return mAudioService .getStreamVolume (streamType );
317+ return mAudioManager .getStreamVolume (streamType );
318318 }
319319 }
320320
321321 private void setStreamVolume (int streamType , int index , int flags ) {
322322 if (streamType == STREAM_MASTER ) {
323- mAudioService .setMasterVolume (index , flags );
323+ mAudioManager .setMasterVolume (index , flags );
324324 } else {
325- mAudioService .setStreamVolume (streamType , index , flags );
326- }
327- }
328-
329- private int getLastAudibleStreamVolume (int streamType ) {
330- if (streamType == STREAM_MASTER ) {
331- return mAudioService .getLastAudibleMasterVolume ();
332- } else {
333- return mAudioService .getLastAudibleStreamVolume (streamType );
325+ mAudioManager .setStreamVolume (streamType , index , flags );
334326 }
335327 }
336328
@@ -399,13 +391,18 @@ private void addOtherVolumes() {
399391
400392 /** Update the mute and progress state of a slider */
401393 private void updateSlider (StreamControl sc ) {
402- sc .seekbarView .setProgress (getLastAudibleStreamVolume (sc .streamType ));
394+ sc .seekbarView .setProgress (getStreamVolume (sc .streamType ));
403395 final boolean muted = isMuted (sc .streamType );
404396 sc .icon .setImageResource (muted ? sc .iconMuteRes : sc .iconRes );
405- if (sc .streamType == AudioManager .STREAM_RING && muted
406- && mAudioManager .shouldVibrate ( AudioManager .VIBRATE_TYPE_RINGER ) ) {
397+ if (sc .streamType == AudioManager .STREAM_RING &&
398+ mAudioManager .getRingerMode () == AudioManager .RINGER_MODE_VIBRATE ) {
407399 sc .icon .setImageResource (R .drawable .ic_audio_ring_notif_vibrate );
408400 }
401+ if (sc .streamType != mAudioManager .getMasterStreamType () && muted ) {
402+ sc .seekbarView .setEnabled (false );
403+ } else {
404+ sc .seekbarView .setEnabled (true );
405+ }
409406 }
410407
411408 private boolean isExpanded () {
@@ -510,9 +507,7 @@ protected void onMuteChanged(int streamType, int flags) {
510507 }
511508
512509 protected void onShowVolumeChanged (int streamType , int flags ) {
513- int index = isMuted (streamType ) ?
514- getLastAudibleStreamVolume (streamType )
515- : getStreamVolume (streamType );
510+ int index = getStreamVolume (streamType );
516511
517512 mRingIsSilent = false ;
518513
@@ -592,6 +587,11 @@ protected void onShowVolumeChanged(int streamType, int flags) {
592587 sc .seekbarView .setMax (max );
593588 }
594589 sc .seekbarView .setProgress (index );
590+ if (streamType != mAudioManager .getMasterStreamType () && isMuted (streamType )) {
591+ sc .seekbarView .setEnabled (false );
592+ } else {
593+ sc .seekbarView .setEnabled (true );
594+ }
595595 }
596596
597597 if (!mDialog .isShowing ()) {
@@ -607,8 +607,7 @@ protected void onShowVolumeChanged(int streamType, int flags) {
607607 // Do a little vibrate if applicable (only when going into vibrate mode)
608608 if ((flags & AudioManager .FLAG_VIBRATE ) != 0 &&
609609 mAudioService .isStreamAffectedByRingerMode (streamType ) &&
610- mAudioService .getRingerMode () == AudioManager .RINGER_MODE_VIBRATE &&
611- mAudioService .shouldVibrate (AudioManager .VIBRATE_TYPE_RINGER )) {
610+ mAudioManager .getRingerMode () == AudioManager .RINGER_MODE_VIBRATE ) {
612611 sendMessageDelayed (obtainMessage (MSG_VIBRATE ), VIBRATE_DELAY );
613612 }
614613 }
@@ -646,7 +645,7 @@ protected void onStopSounds() {
646645 protected void onVibrate () {
647646
648647 // Make sure we ended up in vibrate ringer mode
649- if (mAudioService .getRingerMode () != AudioManager .RINGER_MODE_VIBRATE ) {
648+ if (mAudioManager .getRingerMode () != AudioManager .RINGER_MODE_VIBRATE ) {
650649 return ;
651650 }
652651
0 commit comments