am 998bd113: Update media router API.
* commit '998bd1138ace7eab7452ef3e4fab1518e0193902': Update media router API.
This commit is contained in:
@@ -145,7 +145,6 @@ final class SampleMediaRouteProvider extends MediaRouteProvider {
|
||||
new MediaRouteProviderDescriptor.Builder()
|
||||
.addRoute(routeDescriptor1)
|
||||
.addRoute(routeDescriptor2)
|
||||
.addDiscoverableControlFilters(CONTROL_FILTERS)
|
||||
.build();
|
||||
setDescriptor(providerDescriptor);
|
||||
}
|
||||
|
||||
@@ -21,11 +21,14 @@ import com.example.android.supportv7.R;
|
||||
import android.content.Intent;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.support.v4.app.FragmentManager;
|
||||
import android.support.v4.view.MenuItemCompat;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.support.v7.app.MediaRouteActionProvider;
|
||||
import android.support.v7.app.MediaRouteDiscoveryFragment;
|
||||
import android.support.v7.media.MediaControlIntent;
|
||||
import android.support.v7.media.MediaRouter;
|
||||
import android.support.v7.media.MediaRouter.Callback;
|
||||
import android.support.v7.media.MediaRouter.RouteInfo;
|
||||
import android.support.v7.media.MediaRouter.ProviderInfo;
|
||||
import android.support.v7.media.MediaRouteSelector;
|
||||
@@ -52,7 +55,8 @@ import android.widget.Toast;
|
||||
* </p>
|
||||
*/
|
||||
public class SampleMediaRouterActivity extends ActionBarActivity {
|
||||
private final String TAG = "MediaRouterSupport";
|
||||
private static final String TAG = "MediaRouterSupport";
|
||||
private static final String DISCOVERY_FRAGMENT_TAG = "DiscoveryFragment";
|
||||
|
||||
private MediaRouter mMediaRouter;
|
||||
private MediaRouteSelector mSelector;
|
||||
@@ -78,6 +82,18 @@ public class SampleMediaRouterActivity extends ActionBarActivity {
|
||||
.addControlCategory(SampleMediaRouteProvider.CATEGORY_SAMPLE_ROUTE)
|
||||
.build();
|
||||
|
||||
// Add a fragment to take care of media route discovery.
|
||||
// This fragment automatically adds or removes a callback whenever the activity
|
||||
// is started or stopped.
|
||||
FragmentManager fm = getSupportFragmentManager();
|
||||
if (fm.findFragmentByTag(DISCOVERY_FRAGMENT_TAG) == null) {
|
||||
DiscoveryFragment fragment = new DiscoveryFragment();
|
||||
fragment.setRouteSelector(mSelector);
|
||||
fm.beginTransaction()
|
||||
.add(fragment, DISCOVERY_FRAGMENT_TAG)
|
||||
.commit();
|
||||
}
|
||||
|
||||
// Populate an array adapter with fake media items.
|
||||
String[] mediaNames = getResources().getStringArray(R.array.media_names);
|
||||
String[] mediaUris = getResources().getStringArray(R.array.media_uris);
|
||||
@@ -120,25 +136,13 @@ public class SampleMediaRouterActivity extends ActionBarActivity {
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onResume() {
|
||||
public void onStart() {
|
||||
// Be sure to call the super class.
|
||||
super.onResume();
|
||||
super.onStart();
|
||||
|
||||
// Listen for changes to media routes.
|
||||
mMediaRouter.addCallback(mSelector, mCallback,
|
||||
MediaRouter.CALLBACK_FLAG_UNFILTERED_EVENTS);
|
||||
updateRouteDescription();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPause() {
|
||||
// Be sure to call the super class.
|
||||
super.onPause();
|
||||
|
||||
// Stop listening for changes to media routes.
|
||||
mMediaRouter.removeCallback(mCallback);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onCreateOptionsMenu(Menu menu) {
|
||||
// Be sure to call the super class.
|
||||
@@ -277,60 +281,78 @@ public class SampleMediaRouterActivity extends ActionBarActivity {
|
||||
return null;
|
||||
}
|
||||
|
||||
private final MediaRouter.Callback mCallback = new MediaRouter.Callback() {
|
||||
private final class DiscoveryFragment extends MediaRouteDiscoveryFragment {
|
||||
@Override
|
||||
public void onRouteAdded(MediaRouter router, RouteInfo route) {
|
||||
Log.d(TAG, "onRouteAdded: route=" + route);
|
||||
public Callback onCreateCallback() {
|
||||
// Return a custom callback that will simply log all of the route events
|
||||
// for demonstration purposes.
|
||||
return new MediaRouter.Callback() {
|
||||
@Override
|
||||
public void onRouteAdded(MediaRouter router, RouteInfo route) {
|
||||
Log.d(TAG, "onRouteAdded: route=" + route);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRouteChanged(MediaRouter router, RouteInfo route) {
|
||||
Log.d(TAG, "onRouteChanged: route=" + route);
|
||||
updateRouteDescription();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRouteRemoved(MediaRouter router, RouteInfo route) {
|
||||
Log.d(TAG, "onRouteRemoved: route=" + route);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRouteSelected(MediaRouter router, RouteInfo route) {
|
||||
Log.d(TAG, "onRouteSelected: route=" + route);
|
||||
updateRouteDescription();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRouteUnselected(MediaRouter router, RouteInfo route) {
|
||||
Log.d(TAG, "onRouteUnselected: route=" + route);
|
||||
updateRouteDescription();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRouteVolumeChanged(MediaRouter router, RouteInfo route) {
|
||||
Log.d(TAG, "onRouteVolumeChanged: route=" + route);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRoutePresentationDisplayChanged(
|
||||
MediaRouter router, RouteInfo route) {
|
||||
Log.d(TAG, "onRoutePresentationDisplayChanged: route=" + route);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onProviderAdded(MediaRouter router, ProviderInfo provider) {
|
||||
Log.d(TAG, "onRouteProviderAdded: provider=" + provider);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onProviderRemoved(MediaRouter router, ProviderInfo provider) {
|
||||
Log.d(TAG, "onRouteProviderRemoved: provider=" + provider);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onProviderChanged(MediaRouter router, ProviderInfo provider) {
|
||||
Log.d(TAG, "onRouteProviderChanged: provider=" + provider);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRouteChanged(MediaRouter router, RouteInfo route) {
|
||||
Log.d(TAG, "onRouteChanged: route=" + route);
|
||||
updateRouteDescription();
|
||||
public int onPrepareCallbackFlags() {
|
||||
// Add the CALLBACK_FLAG_UNFILTERED_EVENTS flag to ensure that we will
|
||||
// observe and log all route events including those that are for routes
|
||||
// that do not match our selector. This is only for demonstration purposes
|
||||
// and should not be needed by most applications.
|
||||
return super.onPrepareCallbackFlags()
|
||||
| MediaRouter.CALLBACK_FLAG_UNFILTERED_EVENTS;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRouteRemoved(MediaRouter router, RouteInfo route) {
|
||||
Log.d(TAG, "onRouteRemoved: route=" + route);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRouteSelected(MediaRouter router, RouteInfo route) {
|
||||
Log.d(TAG, "onRouteSelected: route=" + route);
|
||||
updateRouteDescription();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRouteUnselected(MediaRouter router, RouteInfo route) {
|
||||
Log.d(TAG, "onRouteUnselected: route=" + route);
|
||||
updateRouteDescription();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRouteVolumeChanged(MediaRouter router, RouteInfo route) {
|
||||
Log.d(TAG, "onRouteVolumeChanged: route=" + route);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRoutePresentationDisplayChanged(MediaRouter router, RouteInfo route) {
|
||||
Log.d(TAG, "onRoutePresentationDisplayChanged: route=" + route);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onProviderAdded(MediaRouter router, ProviderInfo provider) {
|
||||
Log.d(TAG, "onRouteProviderAdded: provider=" + provider);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onProviderRemoved(MediaRouter router, ProviderInfo provider) {
|
||||
Log.d(TAG, "onRouteProviderRemoved: provider=" + provider);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onProviderChanged(MediaRouter router, ProviderInfo provider) {
|
||||
Log.d(TAG, "onRouteProviderChanged: provider=" + provider);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
private static final class MediaItem {
|
||||
public final String mName;
|
||||
|
||||
Reference in New Issue
Block a user