@@ -136,13 +136,14 @@ void updateVolume() {
136136 if (mRouter == null ) return ;
137137
138138 final RouteInfo selectedRoute = mRouter .getSelectedRoute (mRouteTypes );
139- mVolumeIcon .setImageResource (
139+ mVolumeIcon .setImageResource (selectedRoute == null ||
140140 selectedRoute .getPlaybackType () == RouteInfo .PLAYBACK_TYPE_LOCAL ?
141141 R .drawable .ic_audio_vol : R .drawable .ic_media_route_on_holo_dark );
142142
143143 mIgnoreSliderVolumeChanges = true ;
144144
145- if (selectedRoute .getVolumeHandling () == RouteInfo .PLAYBACK_VOLUME_FIXED ) {
145+ if (selectedRoute == null ||
146+ selectedRoute .getVolumeHandling () == RouteInfo .PLAYBACK_VOLUME_FIXED ) {
146147 // Disable the slider and show it at max volume.
147148 mVolumeSlider .setMax (1 );
148149 mVolumeSlider .setProgress (1 );
@@ -160,7 +161,8 @@ void changeVolume(int newValue) {
160161 if (mIgnoreSliderVolumeChanges ) return ;
161162
162163 final RouteInfo selectedRoute = mRouter .getSelectedRoute (mRouteTypes );
163- if (selectedRoute .getVolumeHandling () == RouteInfo .PLAYBACK_VOLUME_VARIABLE ) {
164+ if (selectedRoute != null &&
165+ selectedRoute .getVolumeHandling () == RouteInfo .PLAYBACK_VOLUME_VARIABLE ) {
164166 final int maxVolume = selectedRoute .getVolumeMax ();
165167 newValue = Math .max (0 , Math .min (newValue , maxVolume ));
166168 selectedRoute .requestSetVolume (newValue );
@@ -652,14 +654,19 @@ public void onBackPressed() {
652654
653655 public boolean onKeyDown (int keyCode , KeyEvent event ) {
654656 if (keyCode == KeyEvent .KEYCODE_VOLUME_DOWN && mVolumeSlider .isEnabled ()) {
655- mRouter .getSelectedRoute (mRouteTypes ).requestUpdateVolume (-1 );
656- return true ;
657+ final RouteInfo selectedRoute = mRouter .getSelectedRoute (mRouteTypes );
658+ if (selectedRoute != null ) {
659+ selectedRoute .requestUpdateVolume (-1 );
660+ return true ;
661+ }
657662 } else if (keyCode == KeyEvent .KEYCODE_VOLUME_UP && mVolumeSlider .isEnabled ()) {
658- mRouter .getSelectedRoute (mRouteTypes ).requestUpdateVolume (1 );
659- return true ;
660- } else {
661- return super .onKeyDown (keyCode , event );
663+ final RouteInfo selectedRoute = mRouter .getSelectedRoute (mRouteTypes );
664+ if (selectedRoute != null ) {
665+ mRouter .getSelectedRoute (mRouteTypes ).requestUpdateVolume (1 );
666+ return true ;
667+ }
662668 }
669+ return super .onKeyDown (keyCode , event );
663670 }
664671
665672 public boolean onKeyUp (int keyCode , KeyEvent event ) {
0 commit comments