Rename methods of RouteController.

Add basic support for returning stream ids.

Change-Id: Iaa11980e6195e23bd598075cb066c6234f000198
This commit is contained in:
Jeff Brown
2013-03-22 19:46:23 -07:00
parent d4f9f64beb
commit fbe0890bb4
2 changed files with 36 additions and 11 deletions

View File

@@ -32,6 +32,8 @@ import android.support.v7.media.MediaRouter.ControlRequestCallback;
import android.util.Log;
import android.widget.Toast;
import java.util.UUID;
/**
* Demonstrates how to create a custom media route provider.
*
@@ -138,6 +140,10 @@ final class SampleMediaRouteProvider extends MediaRouteProvider {
setDescriptor(providerDescriptor);
}
private String generateStreamId() {
return UUID.randomUUID().toString();
}
private final class SampleRouteController extends MediaRouteProvider.RouteController {
private final String mRouteId;
@@ -147,22 +153,22 @@ final class SampleMediaRouteProvider extends MediaRouteProvider {
}
@Override
public void release() {
public void onRelease() {
Log.d(TAG, mRouteId + ": Controller released");
}
@Override
public void select() {
public void onSelect() {
Log.d(TAG, mRouteId + ": Selected");
}
@Override
public void unselect() {
public void onUnselect() {
Log.d(TAG, mRouteId + ": Unselected");
}
@Override
public void setVolume(int volume) {
public void onSetVolume(int volume) {
Log.d(TAG, mRouteId + ": Set volume to " + volume);
if (mRouteId.equals(VARIABLE_VOLUME_ROUTE_ID)) {
setVolumeInternal(volume);
@@ -170,7 +176,7 @@ final class SampleMediaRouteProvider extends MediaRouteProvider {
}
@Override
public void updateVolume(int delta) {
public void onUpdateVolume(int delta) {
Log.d(TAG, mRouteId + ": Update volume by " + delta);
if (mRouteId.equals(VARIABLE_VOLUME_ROUTE_ID)) {
setVolumeInternal(mVolume + delta);
@@ -186,7 +192,7 @@ final class SampleMediaRouteProvider extends MediaRouteProvider {
}
@Override
public boolean sendControlRequest(Intent intent, ControlRequestCallback callback) {
public boolean onControlRequest(Intent intent, ControlRequestCallback callback) {
Log.d(TAG, mRouteId + ": Received control request " + intent);
if (intent.getAction().equals(MediaControlIntent.ACTION_PLAY)
&& intent.hasCategory(MediaControlIntent.CATEGORY_REMOTE_PLAYBACK)
@@ -194,11 +200,26 @@ final class SampleMediaRouteProvider extends MediaRouteProvider {
mPlaybackCount +=1;
Uri uri = intent.getData();
Log.d(TAG, mRouteId + ": Received play request, uri=" + uri);
int queueBehavior = intent.getIntExtra(
MediaControlIntent.EXTRA_QUEUE_BEHAVIOR,
MediaControlIntent.QUEUE_BEHAVIOR_PLAY_NOW);
int position = intent.getIntExtra(
MediaControlIntent.EXTRA_STREAM_POSITION, 0);
Bundle metadata = intent.getBundleExtra(MediaControlIntent.EXTRA_STREAM_METADATA);
Bundle headers = intent.getBundleExtra(MediaControlIntent.EXTRA_HTTP_HEADERS);
String streamId = generateStreamId();
Log.d(TAG, mRouteId + ": Received play request, uri=" + uri
+ ", queueBehavior=" + queueBehavior
+ ", position=" + position
+ ", metadata=" + metadata
+ ", headers=" + headers);
Toast.makeText(getContext(), "Route received play request: uri=" + uri,
Toast.LENGTH_LONG).show();
if (callback != null) {
callback.onResult(ControlRequestCallback.REQUEST_SUCCEEDED, null);
Bundle result = new Bundle();
result.putString(MediaControlIntent.EXTRA_STREAM_ID, streamId);
callback.onResult(ControlRequestCallback.REQUEST_SUCCEEDED, result);
}
return true;
}

View File

@@ -184,15 +184,19 @@ public class SampleMediaRouterActivity extends Activity {
@Override
public void onResult(int result, Bundle data) {
switch (result) {
case REQUEST_SUCCEEDED:
Log.d(TAG, "Play request succeeded: data=" + data);
case REQUEST_SUCCEEDED: {
String streamId = data != null ? data.getString(
MediaControlIntent.EXTRA_STREAM_ID) : null;
Log.d(TAG, "Play request succeeded: streamId=" + streamId);
Toast.makeText(SampleMediaRouterActivity.this,
"Now playing " + item.mName,
Toast.LENGTH_LONG).show();
break;
}
case REQUEST_FAILED:
Log.d(TAG, "Play request failed: data=" + data);
Log.d(TAG, "Play request failed.");
Toast.makeText(SampleMediaRouterActivity.this,
"Unable to play " + item.mName,
Toast.LENGTH_LONG).show();