am 10479a29
: Merge "Clean up behavior of type arguments for MediaRouter#getSelectedRoute" into jb-mr1.1-dev
* commit '10479a29cbdc55cfd25b30cd792a151234b55fa6': Clean up behavior of type arguments for MediaRouter#getSelectedRoute
This commit is contained in:
@ -217,7 +217,8 @@ public class MediaRouteButton extends View {
|
|||||||
void updateRemoteIndicator() {
|
void updateRemoteIndicator() {
|
||||||
final RouteInfo selected = mRouter.getSelectedRoute(mRouteTypes);
|
final RouteInfo selected = mRouter.getSelectedRoute(mRouteTypes);
|
||||||
final boolean isRemote = selected != mRouter.getSystemAudioRoute();
|
final boolean isRemote = selected != mRouter.getSystemAudioRoute();
|
||||||
final boolean isConnecting = selected.getStatusCode() == RouteInfo.STATUS_CONNECTING;
|
final boolean isConnecting = selected != null &&
|
||||||
|
selected.getStatusCode() == RouteInfo.STATUS_CONNECTING;
|
||||||
|
|
||||||
boolean needsRefresh = false;
|
boolean needsRefresh = false;
|
||||||
if (mRemoteActive != isRemote) {
|
if (mRemoteActive != isRemote) {
|
||||||
|
@ -136,13 +136,14 @@ public class MediaRouteChooserDialogFragment extends DialogFragment {
|
|||||||
if (mRouter == null) return;
|
if (mRouter == null) return;
|
||||||
|
|
||||||
final RouteInfo selectedRoute = mRouter.getSelectedRoute(mRouteTypes);
|
final RouteInfo selectedRoute = mRouter.getSelectedRoute(mRouteTypes);
|
||||||
mVolumeIcon.setImageResource(
|
mVolumeIcon.setImageResource(selectedRoute == null ||
|
||||||
selectedRoute.getPlaybackType() == RouteInfo.PLAYBACK_TYPE_LOCAL ?
|
selectedRoute.getPlaybackType() == RouteInfo.PLAYBACK_TYPE_LOCAL ?
|
||||||
R.drawable.ic_audio_vol : R.drawable.ic_media_route_on_holo_dark);
|
R.drawable.ic_audio_vol : R.drawable.ic_media_route_on_holo_dark);
|
||||||
|
|
||||||
mIgnoreSliderVolumeChanges = true;
|
mIgnoreSliderVolumeChanges = true;
|
||||||
|
|
||||||
if (selectedRoute.getVolumeHandling() == RouteInfo.PLAYBACK_VOLUME_FIXED) {
|
if (selectedRoute == null ||
|
||||||
|
selectedRoute.getVolumeHandling() == RouteInfo.PLAYBACK_VOLUME_FIXED) {
|
||||||
// Disable the slider and show it at max volume.
|
// Disable the slider and show it at max volume.
|
||||||
mVolumeSlider.setMax(1);
|
mVolumeSlider.setMax(1);
|
||||||
mVolumeSlider.setProgress(1);
|
mVolumeSlider.setProgress(1);
|
||||||
@ -160,7 +161,8 @@ public class MediaRouteChooserDialogFragment extends DialogFragment {
|
|||||||
if (mIgnoreSliderVolumeChanges) return;
|
if (mIgnoreSliderVolumeChanges) return;
|
||||||
|
|
||||||
final RouteInfo selectedRoute = mRouter.getSelectedRoute(mRouteTypes);
|
final RouteInfo selectedRoute = mRouter.getSelectedRoute(mRouteTypes);
|
||||||
if (selectedRoute.getVolumeHandling() == RouteInfo.PLAYBACK_VOLUME_VARIABLE) {
|
if (selectedRoute != null &&
|
||||||
|
selectedRoute.getVolumeHandling() == RouteInfo.PLAYBACK_VOLUME_VARIABLE) {
|
||||||
final int maxVolume = selectedRoute.getVolumeMax();
|
final int maxVolume = selectedRoute.getVolumeMax();
|
||||||
newValue = Math.max(0, Math.min(newValue, maxVolume));
|
newValue = Math.max(0, Math.min(newValue, maxVolume));
|
||||||
selectedRoute.requestSetVolume(newValue);
|
selectedRoute.requestSetVolume(newValue);
|
||||||
@ -652,15 +654,20 @@ public class MediaRouteChooserDialogFragment extends DialogFragment {
|
|||||||
|
|
||||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||||
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN && mVolumeSlider.isEnabled()) {
|
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN && mVolumeSlider.isEnabled()) {
|
||||||
mRouter.getSelectedRoute(mRouteTypes).requestUpdateVolume(-1);
|
final RouteInfo selectedRoute = mRouter.getSelectedRoute(mRouteTypes);
|
||||||
|
if (selectedRoute != null) {
|
||||||
|
selectedRoute.requestUpdateVolume(-1);
|
||||||
return true;
|
return true;
|
||||||
|
}
|
||||||
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP && mVolumeSlider.isEnabled()) {
|
} else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP && mVolumeSlider.isEnabled()) {
|
||||||
|
final RouteInfo selectedRoute = mRouter.getSelectedRoute(mRouteTypes);
|
||||||
|
if (selectedRoute != null) {
|
||||||
mRouter.getSelectedRoute(mRouteTypes).requestUpdateVolume(1);
|
mRouter.getSelectedRoute(mRouteTypes).requestUpdateVolume(1);
|
||||||
return true;
|
return true;
|
||||||
} else {
|
|
||||||
return super.onKeyDown(keyCode, event);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return super.onKeyDown(keyCode, event);
|
||||||
|
}
|
||||||
|
|
||||||
public boolean onKeyUp(int keyCode, KeyEvent event) {
|
public boolean onKeyUp(int keyCode, KeyEvent event) {
|
||||||
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN && mVolumeSlider.isEnabled()) {
|
if (keyCode == KeyEvent.KEYCODE_VOLUME_DOWN && mVolumeSlider.isEnabled()) {
|
||||||
|
@ -313,13 +313,25 @@ public class MediaRouter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the currently selected route for the given types
|
* Return the currently selected route for any of the given types
|
||||||
*
|
*
|
||||||
* @param type route types
|
* @param type route types
|
||||||
* @return the selected route
|
* @return the selected route
|
||||||
*/
|
*/
|
||||||
public RouteInfo getSelectedRoute(int type) {
|
public RouteInfo getSelectedRoute(int type) {
|
||||||
|
if (sStatic.mSelectedRoute != null &&
|
||||||
|
(sStatic.mSelectedRoute.mSupportedTypes & type) != 0) {
|
||||||
|
// If the selected route supports any of the types supplied, it's still considered
|
||||||
|
// 'selected' for that type.
|
||||||
return sStatic.mSelectedRoute;
|
return sStatic.mSelectedRoute;
|
||||||
|
} else if (type == ROUTE_TYPE_USER) {
|
||||||
|
// The caller specifically asked for a user route and the currently selected route
|
||||||
|
// doesn't qualify.
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
// If the above didn't match and we're not specifically asking for a user route,
|
||||||
|
// consider the default selected.
|
||||||
|
return sStatic.mDefaultAudioVideo;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Reference in New Issue
Block a user