package android.support.v7.app {

  public class MediaRouteActionProvider extends android.support.v4.view.ActionProvider {
    ctor public MediaRouteActionProvider(android.content.Context);
    method public android.support.v7.app.MediaRouteDialogFactory getDialogFactory();
    method public android.support.v7.app.MediaRouteButton getMediaRouteButton();
    method public android.support.v7.media.MediaRouteSelector getRouteSelector();
    method public android.view.View onCreateActionView();
    method public android.support.v7.app.MediaRouteButton onCreateMediaRouteButton();
    method public void setDialogFactory(android.support.v7.app.MediaRouteDialogFactory);
    method public void setRouteSelector(android.support.v7.media.MediaRouteSelector);
  }

  public class MediaRouteButton extends android.view.View {
    ctor public MediaRouteButton(android.content.Context);
    ctor public MediaRouteButton(android.content.Context, android.util.AttributeSet);
    ctor public MediaRouteButton(android.content.Context, android.util.AttributeSet, int);
    method public android.support.v7.app.MediaRouteDialogFactory getDialogFactory();
    method public android.support.v7.media.MediaRouteSelector getRouteSelector();
    method public void onAttachedToWindow();
    method public void onDetachedFromWindow();
    method public void setDialogFactory(android.support.v7.app.MediaRouteDialogFactory);
    method public void setRouteSelector(android.support.v7.media.MediaRouteSelector);
    method public boolean showDialog();
  }

  public class MediaRouteChooserDialog extends android.app.Dialog {
    ctor public MediaRouteChooserDialog(android.content.Context);
    ctor public MediaRouteChooserDialog(android.content.Context, int);
    method public android.support.v7.media.MediaRouteSelector getRouteSelector();
    method public boolean onFilterRoute(android.support.v7.media.MediaRouter.RouteInfo);
    method public void onFilterRoutes(java.util.List<android.support.v7.media.MediaRouter.RouteInfo>);
    method public void refreshRoutes();
    method public void setRouteSelector(android.support.v7.media.MediaRouteSelector);
  }

  public class MediaRouteChooserDialogFragment extends android.support.v4.app.DialogFragment {
    ctor public MediaRouteChooserDialogFragment();
    method public android.support.v7.media.MediaRouteSelector getRouteSelector();
    method public android.support.v7.app.MediaRouteChooserDialog onCreateChooserDialog(android.content.Context, android.os.Bundle);
    method public void setRouteSelector(android.support.v7.media.MediaRouteSelector);
  }

  public class MediaRouteControllerDialog extends android.app.Dialog {
    ctor public MediaRouteControllerDialog(android.content.Context);
    ctor public MediaRouteControllerDialog(android.content.Context, int);
    method public android.view.View getMediaControlView();
    method public android.support.v4.media.session.MediaSessionCompat.Token getMediaSession();
    method public android.support.v7.media.MediaRouter.RouteInfo getRoute();
    method public android.view.View onCreateMediaControlView(android.os.Bundle);
  }

  public class MediaRouteControllerDialogFragment extends android.support.v4.app.DialogFragment {
    ctor public MediaRouteControllerDialogFragment();
    method public android.support.v7.app.MediaRouteControllerDialog onCreateControllerDialog(android.content.Context, android.os.Bundle);
  }

  public class MediaRouteDialogFactory {
    ctor public MediaRouteDialogFactory();
    method public static android.support.v7.app.MediaRouteDialogFactory getDefault();
    method public android.support.v7.app.MediaRouteChooserDialogFragment onCreateChooserDialogFragment();
    method public android.support.v7.app.MediaRouteControllerDialogFragment onCreateControllerDialogFragment();
  }

  public class MediaRouteDiscoveryFragment extends android.support.v4.app.Fragment {
    ctor public MediaRouteDiscoveryFragment();
    method public android.support.v7.media.MediaRouter getMediaRouter();
    method public android.support.v7.media.MediaRouteSelector getRouteSelector();
    method public android.support.v7.media.MediaRouter.Callback onCreateCallback();
    method public int onPrepareCallbackFlags();
    method public void setRouteSelector(android.support.v7.media.MediaRouteSelector);
  }

}

package android.support.v7.media {

  public final class MediaControlIntent {
    field public static final java.lang.String ACTION_END_SESSION = "android.media.intent.action.END_SESSION";
    field public static final java.lang.String ACTION_ENQUEUE = "android.media.intent.action.ENQUEUE";
    field public static final java.lang.String ACTION_GET_SESSION_STATUS = "android.media.intent.action.GET_SESSION_STATUS";
    field public static final java.lang.String ACTION_GET_STATUS = "android.media.intent.action.GET_STATUS";
    field public static final java.lang.String ACTION_PAUSE = "android.media.intent.action.PAUSE";
    field public static final java.lang.String ACTION_PLAY = "android.media.intent.action.PLAY";
    field public static final java.lang.String ACTION_REMOVE = "android.media.intent.action.REMOVE";
    field public static final java.lang.String ACTION_RESUME = "android.media.intent.action.RESUME";
    field public static final java.lang.String ACTION_SEEK = "android.media.intent.action.SEEK";
    field public static final java.lang.String ACTION_START_SESSION = "android.media.intent.action.START_SESSION";
    field public static final java.lang.String ACTION_STOP = "android.media.intent.action.STOP";
    field public static final java.lang.String CATEGORY_LIVE_AUDIO = "android.media.intent.category.LIVE_AUDIO";
    field public static final java.lang.String CATEGORY_LIVE_VIDEO = "android.media.intent.category.LIVE_VIDEO";
    field public static final java.lang.String CATEGORY_REMOTE_PLAYBACK = "android.media.intent.category.REMOTE_PLAYBACK";
    field public static final int ERROR_INVALID_ITEM_ID = 3; // 0x3
    field public static final int ERROR_INVALID_SESSION_ID = 2; // 0x2
    field public static final int ERROR_UNKNOWN = 0; // 0x0
    field public static final int ERROR_UNSUPPORTED_OPERATION = 1; // 0x1
    field public static final java.lang.String EXTRA_ERROR_CODE = "android.media.intent.extra.ERROR_CODE";
    field public static final java.lang.String EXTRA_ITEM_CONTENT_POSITION = "android.media.intent.extra.ITEM_POSITION";
    field public static final java.lang.String EXTRA_ITEM_HTTP_HEADERS = "android.media.intent.extra.HTTP_HEADERS";
    field public static final java.lang.String EXTRA_ITEM_ID = "android.media.intent.extra.ITEM_ID";
    field public static final java.lang.String EXTRA_ITEM_METADATA = "android.media.intent.extra.ITEM_METADATA";
    field public static final java.lang.String EXTRA_ITEM_STATUS = "android.media.intent.extra.ITEM_STATUS";
    field public static final java.lang.String EXTRA_ITEM_STATUS_UPDATE_RECEIVER = "android.media.intent.extra.ITEM_STATUS_UPDATE_RECEIVER";
    field public static final java.lang.String EXTRA_SESSION_ID = "android.media.intent.extra.SESSION_ID";
    field public static final java.lang.String EXTRA_SESSION_STATUS = "android.media.intent.extra.SESSION_STATUS";
    field public static final java.lang.String EXTRA_SESSION_STATUS_UPDATE_RECEIVER = "android.media.intent.extra.SESSION_STATUS_UPDATE_RECEIVER";
  }

  public final class MediaItemMetadata {
    field public static final java.lang.String KEY_ALBUM_ARTIST = "android.media.metadata.ALBUM_ARTIST";
    field public static final java.lang.String KEY_ALBUM_TITLE = "android.media.metadata.ALBUM_TITLE";
    field public static final java.lang.String KEY_ARTIST = "android.media.metadata.ARTIST";
    field public static final java.lang.String KEY_ARTWORK_URI = "android.media.metadata.ARTWORK_URI";
    field public static final java.lang.String KEY_AUTHOR = "android.media.metadata.AUTHOR";
    field public static final java.lang.String KEY_COMPOSER = "android.media.metadata.COMPOSER";
    field public static final java.lang.String KEY_DISC_NUMBER = "android.media.metadata.DISC_NUMBER";
    field public static final java.lang.String KEY_DURATION = "android.media.metadata.DURATION";
    field public static final java.lang.String KEY_TITLE = "android.media.metadata.TITLE";
    field public static final java.lang.String KEY_TRACK_NUMBER = "android.media.metadata.TRACK_NUMBER";
    field public static final java.lang.String KEY_YEAR = "android.media.metadata.YEAR";
  }

  public final class MediaItemStatus {
    method public android.os.Bundle asBundle();
    method public static android.support.v7.media.MediaItemStatus fromBundle(android.os.Bundle);
    method public long getContentDuration();
    method public long getContentPosition();
    method public android.os.Bundle getExtras();
    method public int getPlaybackState();
    method public long getTimestamp();
    field public static final java.lang.String EXTRA_HTTP_RESPONSE_HEADERS = "android.media.status.extra.HTTP_RESPONSE_HEADERS";
    field public static final java.lang.String EXTRA_HTTP_STATUS_CODE = "android.media.status.extra.HTTP_STATUS_CODE";
    field public static final int PLAYBACK_STATE_BUFFERING = 3; // 0x3
    field public static final int PLAYBACK_STATE_CANCELED = 5; // 0x5
    field public static final int PLAYBACK_STATE_ERROR = 7; // 0x7
    field public static final int PLAYBACK_STATE_FINISHED = 4; // 0x4
    field public static final int PLAYBACK_STATE_INVALIDATED = 6; // 0x6
    field public static final int PLAYBACK_STATE_PAUSED = 2; // 0x2
    field public static final int PLAYBACK_STATE_PENDING = 0; // 0x0
    field public static final int PLAYBACK_STATE_PLAYING = 1; // 0x1
  }

  public static final class MediaItemStatus.Builder {
    ctor public MediaItemStatus.Builder(int);
    ctor public MediaItemStatus.Builder(android.support.v7.media.MediaItemStatus);
    method public android.support.v7.media.MediaItemStatus build();
    method public android.support.v7.media.MediaItemStatus.Builder setContentDuration(long);
    method public android.support.v7.media.MediaItemStatus.Builder setContentPosition(long);
    method public android.support.v7.media.MediaItemStatus.Builder setExtras(android.os.Bundle);
    method public android.support.v7.media.MediaItemStatus.Builder setPlaybackState(int);
    method public android.support.v7.media.MediaItemStatus.Builder setTimestamp(long);
  }

  public final class MediaRouteDescriptor {
    method public android.os.Bundle asBundle();
    method public boolean canDisconnectAndKeepPlaying();
    method public static android.support.v7.media.MediaRouteDescriptor fromBundle(android.os.Bundle);
    method public java.util.List<android.content.IntentFilter> getControlFilters();
    method public java.lang.String getDescription();
    method public android.os.Bundle getExtras();
    method public java.lang.String getId();
    method public java.lang.String getName();
    method public int getPlaybackStream();
    method public int getPlaybackType();
    method public int getPresentationDisplayId();
    method public android.content.IntentSender getSettingsActivity();
    method public int getVolume();
    method public int getVolumeHandling();
    method public int getVolumeMax();
    method public boolean isConnecting();
    method public boolean isEnabled();
    method public boolean isValid();
  }

  public static final class MediaRouteDescriptor.Builder {
    ctor public MediaRouteDescriptor.Builder(java.lang.String, java.lang.String);
    ctor public MediaRouteDescriptor.Builder(android.support.v7.media.MediaRouteDescriptor);
    method public android.support.v7.media.MediaRouteDescriptor.Builder addControlFilter(android.content.IntentFilter);
    method public android.support.v7.media.MediaRouteDescriptor.Builder addControlFilters(java.util.Collection<android.content.IntentFilter>);
    method public android.support.v7.media.MediaRouteDescriptor build();
    method public android.support.v7.media.MediaRouteDescriptor.Builder setCanDisconnect(boolean);
    method public android.support.v7.media.MediaRouteDescriptor.Builder setConnecting(boolean);
    method public android.support.v7.media.MediaRouteDescriptor.Builder setDescription(java.lang.String);
    method public android.support.v7.media.MediaRouteDescriptor.Builder setEnabled(boolean);
    method public android.support.v7.media.MediaRouteDescriptor.Builder setExtras(android.os.Bundle);
    method public android.support.v7.media.MediaRouteDescriptor.Builder setId(java.lang.String);
    method public android.support.v7.media.MediaRouteDescriptor.Builder setName(java.lang.String);
    method public android.support.v7.media.MediaRouteDescriptor.Builder setPlaybackStream(int);
    method public android.support.v7.media.MediaRouteDescriptor.Builder setPlaybackType(int);
    method public android.support.v7.media.MediaRouteDescriptor.Builder setPresentationDisplayId(int);
    method public android.support.v7.media.MediaRouteDescriptor.Builder setSettingsActivity(android.content.IntentSender);
    method public android.support.v7.media.MediaRouteDescriptor.Builder setVolume(int);
    method public android.support.v7.media.MediaRouteDescriptor.Builder setVolumeHandling(int);
    method public android.support.v7.media.MediaRouteDescriptor.Builder setVolumeMax(int);
  }

  public final class MediaRouteDiscoveryRequest {
    ctor public MediaRouteDiscoveryRequest(android.support.v7.media.MediaRouteSelector, boolean);
    method public android.os.Bundle asBundle();
    method public static android.support.v7.media.MediaRouteDiscoveryRequest fromBundle(android.os.Bundle);
    method public android.support.v7.media.MediaRouteSelector getSelector();
    method public boolean isActiveScan();
    method public boolean isValid();
  }

  public abstract class MediaRouteProvider {
    ctor public MediaRouteProvider(android.content.Context);
    method public final android.content.Context getContext();
    method public final android.support.v7.media.MediaRouteProviderDescriptor getDescriptor();
    method public final android.support.v7.media.MediaRouteDiscoveryRequest getDiscoveryRequest();
    method public final android.os.Handler getHandler();
    method public final android.support.v7.media.MediaRouteProvider.ProviderMetadata getMetadata();
    method public android.support.v7.media.MediaRouteProvider.RouteController onCreateRouteController(java.lang.String);
    method public void onDiscoveryRequestChanged(android.support.v7.media.MediaRouteDiscoveryRequest);
    method public final void setCallback(android.support.v7.media.MediaRouteProvider.Callback);
    method public final void setDescriptor(android.support.v7.media.MediaRouteProviderDescriptor);
    method public final void setDiscoveryRequest(android.support.v7.media.MediaRouteDiscoveryRequest);
  }

  public static abstract class MediaRouteProvider.Callback {
    ctor public MediaRouteProvider.Callback();
    method public void onDescriptorChanged(android.support.v7.media.MediaRouteProvider, android.support.v7.media.MediaRouteProviderDescriptor);
  }

  public static final class MediaRouteProvider.ProviderMetadata {
    method public android.content.ComponentName getComponentName();
    method public java.lang.String getPackageName();
  }

  public static abstract class MediaRouteProvider.RouteController {
    ctor public MediaRouteProvider.RouteController();
    method public boolean onControlRequest(android.content.Intent, android.support.v7.media.MediaRouter.ControlRequestCallback);
    method public void onRelease();
    method public void onSelect();
    method public void onSetVolume(int);
    method public void onUnselect();
    method public void onUnselect(int);
    method public void onUpdateVolume(int);
  }

  public final class MediaRouteProviderDescriptor {
    method public android.os.Bundle asBundle();
    method public static android.support.v7.media.MediaRouteProviderDescriptor fromBundle(android.os.Bundle);
    method public java.util.List<android.support.v7.media.MediaRouteDescriptor> getRoutes();
    method public boolean isValid();
  }

  public static final class MediaRouteProviderDescriptor.Builder {
    ctor public MediaRouteProviderDescriptor.Builder();
    ctor public MediaRouteProviderDescriptor.Builder(android.support.v7.media.MediaRouteProviderDescriptor);
    method public android.support.v7.media.MediaRouteProviderDescriptor.Builder addRoute(android.support.v7.media.MediaRouteDescriptor);
    method public android.support.v7.media.MediaRouteProviderDescriptor.Builder addRoutes(java.util.Collection<android.support.v7.media.MediaRouteDescriptor>);
    method public android.support.v7.media.MediaRouteProviderDescriptor build();
  }

  public abstract class MediaRouteProviderService extends android.app.Service {
    ctor public MediaRouteProviderService();
    method public android.support.v7.media.MediaRouteProvider getMediaRouteProvider();
    method public android.os.IBinder onBind(android.content.Intent);
    method public abstract android.support.v7.media.MediaRouteProvider onCreateMediaRouteProvider();
    field public static final java.lang.String SERVICE_INTERFACE = "android.media.MediaRouteProviderService";
  }

  public final class MediaRouteSelector {
    method public android.os.Bundle asBundle();
    method public boolean contains(android.support.v7.media.MediaRouteSelector);
    method public static android.support.v7.media.MediaRouteSelector fromBundle(android.os.Bundle);
    method public java.util.List<java.lang.String> getControlCategories();
    method public boolean hasControlCategory(java.lang.String);
    method public boolean isEmpty();
    method public boolean isValid();
    method public boolean matchesControlFilters(java.util.List<android.content.IntentFilter>);
    field public static final android.support.v7.media.MediaRouteSelector EMPTY;
  }

  public static final class MediaRouteSelector.Builder {
    ctor public MediaRouteSelector.Builder();
    ctor public MediaRouteSelector.Builder(android.support.v7.media.MediaRouteSelector);
    method public android.support.v7.media.MediaRouteSelector.Builder addControlCategories(java.util.Collection<java.lang.String>);
    method public android.support.v7.media.MediaRouteSelector.Builder addControlCategory(java.lang.String);
    method public android.support.v7.media.MediaRouteSelector.Builder addSelector(android.support.v7.media.MediaRouteSelector);
    method public android.support.v7.media.MediaRouteSelector build();
  }

  public final class MediaRouter {
    method public void addCallback(android.support.v7.media.MediaRouteSelector, android.support.v7.media.MediaRouter.Callback);
    method public void addCallback(android.support.v7.media.MediaRouteSelector, android.support.v7.media.MediaRouter.Callback, int);
    method public void addProvider(android.support.v7.media.MediaRouteProvider);
    method public void addRemoteControlClient(java.lang.Object);
    method public android.support.v7.media.MediaRouter.RouteInfo getDefaultRoute();
    method public static android.support.v7.media.MediaRouter getInstance(android.content.Context);
    method public android.support.v4.media.session.MediaSessionCompat.Token getMediaSessionToken();
    method public java.util.List<android.support.v7.media.MediaRouter.ProviderInfo> getProviders();
    method public java.util.List<android.support.v7.media.MediaRouter.RouteInfo> getRoutes();
    method public android.support.v7.media.MediaRouter.RouteInfo getSelectedRoute();
    method public boolean isRouteAvailable(android.support.v7.media.MediaRouteSelector, int);
    method public void removeCallback(android.support.v7.media.MediaRouter.Callback);
    method public void removeProvider(android.support.v7.media.MediaRouteProvider);
    method public void removeRemoteControlClient(java.lang.Object);
    method public void selectRoute(android.support.v7.media.MediaRouter.RouteInfo);
    method public void setMediaSession(java.lang.Object);
    method public void setMediaSessionCompat(android.support.v4.media.session.MediaSessionCompat);
    method public void unselect(int);
    method public android.support.v7.media.MediaRouter.RouteInfo updateSelectedRoute(android.support.v7.media.MediaRouteSelector);
    field public static final int AVAILABILITY_FLAG_IGNORE_DEFAULT_ROUTE = 1; // 0x1
    field public static final int AVAILABILITY_FLAG_REQUIRE_MATCH = 2; // 0x2
    field public static final int CALLBACK_FLAG_FORCE_DISCOVERY = 8; // 0x8
    field public static final int CALLBACK_FLAG_PERFORM_ACTIVE_SCAN = 1; // 0x1
    field public static final int CALLBACK_FLAG_REQUEST_DISCOVERY = 4; // 0x4
    field public static final int CALLBACK_FLAG_UNFILTERED_EVENTS = 2; // 0x2
    field public static final int UNSELECT_REASON_DISCONNECTED = 1; // 0x1
    field public static final int UNSELECT_REASON_ROUTE_CHANGED = 3; // 0x3
    field public static final int UNSELECT_REASON_STOPPED = 2; // 0x2
    field public static final int UNSELECT_REASON_UNKNOWN = 0; // 0x0
  }

  public static abstract class MediaRouter.Callback {
    ctor public MediaRouter.Callback();
    method public void onProviderAdded(android.support.v7.media.MediaRouter, android.support.v7.media.MediaRouter.ProviderInfo);
    method public void onProviderChanged(android.support.v7.media.MediaRouter, android.support.v7.media.MediaRouter.ProviderInfo);
    method public void onProviderRemoved(android.support.v7.media.MediaRouter, android.support.v7.media.MediaRouter.ProviderInfo);
    method public void onRouteAdded(android.support.v7.media.MediaRouter, android.support.v7.media.MediaRouter.RouteInfo);
    method public void onRouteChanged(android.support.v7.media.MediaRouter, android.support.v7.media.MediaRouter.RouteInfo);
    method public void onRoutePresentationDisplayChanged(android.support.v7.media.MediaRouter, android.support.v7.media.MediaRouter.RouteInfo);
    method public void onRouteRemoved(android.support.v7.media.MediaRouter, android.support.v7.media.MediaRouter.RouteInfo);
    method public void onRouteSelected(android.support.v7.media.MediaRouter, android.support.v7.media.MediaRouter.RouteInfo);
    method public void onRouteUnselected(android.support.v7.media.MediaRouter, android.support.v7.media.MediaRouter.RouteInfo);
    method public void onRouteVolumeChanged(android.support.v7.media.MediaRouter, android.support.v7.media.MediaRouter.RouteInfo);
  }

  public static abstract class MediaRouter.ControlRequestCallback {
    ctor public MediaRouter.ControlRequestCallback();
    method public void onError(java.lang.String, android.os.Bundle);
    method public void onResult(android.os.Bundle);
  }

  public static final class MediaRouter.ProviderInfo {
    method public android.content.ComponentName getComponentName();
    method public java.lang.String getPackageName();
    method public android.support.v7.media.MediaRouteProvider getProviderInstance();
    method public java.util.List<android.support.v7.media.MediaRouter.RouteInfo> getRoutes();
  }

  public static final class MediaRouter.RouteInfo {
    method public boolean canDisconnect();
    method public java.util.List<android.content.IntentFilter> getControlFilters();
    method public java.lang.String getDescription();
    method public android.os.Bundle getExtras();
    method public java.lang.String getId();
    method public java.lang.String getName();
    method public int getPlaybackStream();
    method public int getPlaybackType();
    method public android.view.Display getPresentationDisplay();
    method public android.support.v7.media.MediaRouter.ProviderInfo getProvider();
    method public android.content.IntentSender getSettingsIntent();
    method public int getVolume();
    method public int getVolumeHandling();
    method public int getVolumeMax();
    method public boolean isConnecting();
    method public boolean isDefault();
    method public boolean isEnabled();
    method public boolean isSelected();
    method public boolean matchesSelector(android.support.v7.media.MediaRouteSelector);
    method public void requestSetVolume(int);
    method public void requestUpdateVolume(int);
    method public void select();
    method public void sendControlRequest(android.content.Intent, android.support.v7.media.MediaRouter.ControlRequestCallback);
    method public boolean supportsControlAction(java.lang.String, java.lang.String);
    method public boolean supportsControlCategory(java.lang.String);
    method public boolean supportsControlRequest(android.content.Intent);
    field public static final int PLAYBACK_TYPE_LOCAL = 0; // 0x0
    field public static final int PLAYBACK_TYPE_REMOTE = 1; // 0x1
    field public static final int PLAYBACK_VOLUME_FIXED = 0; // 0x0
    field public static final int PLAYBACK_VOLUME_VARIABLE = 1; // 0x1
  }

  public final class MediaSessionStatus {
    method public android.os.Bundle asBundle();
    method public static android.support.v7.media.MediaSessionStatus fromBundle(android.os.Bundle);
    method public android.os.Bundle getExtras();
    method public int getSessionState();
    method public long getTimestamp();
    method public boolean isQueuePaused();
    field public static final int SESSION_STATE_ACTIVE = 0; // 0x0
    field public static final int SESSION_STATE_ENDED = 1; // 0x1
    field public static final int SESSION_STATE_INVALIDATED = 2; // 0x2
  }

  public static final class MediaSessionStatus.Builder {
    ctor public MediaSessionStatus.Builder(int);
    ctor public MediaSessionStatus.Builder(android.support.v7.media.MediaSessionStatus);
    method public android.support.v7.media.MediaSessionStatus build();
    method public android.support.v7.media.MediaSessionStatus.Builder setExtras(android.os.Bundle);
    method public android.support.v7.media.MediaSessionStatus.Builder setQueuePaused(boolean);
    method public android.support.v7.media.MediaSessionStatus.Builder setSessionState(int);
    method public android.support.v7.media.MediaSessionStatus.Builder setTimestamp(long);
  }

  public class RemotePlaybackClient {
    ctor public RemotePlaybackClient(android.content.Context, android.support.v7.media.MediaRouter.RouteInfo);
    method public void endSession(android.os.Bundle, android.support.v7.media.RemotePlaybackClient.SessionActionCallback);
    method public void enqueue(android.net.Uri, java.lang.String, android.os.Bundle, long, android.os.Bundle, android.support.v7.media.RemotePlaybackClient.ItemActionCallback);
    method public java.lang.String getSessionId();
    method public void getSessionStatus(android.os.Bundle, android.support.v7.media.RemotePlaybackClient.SessionActionCallback);
    method public void getStatus(java.lang.String, android.os.Bundle, android.support.v7.media.RemotePlaybackClient.ItemActionCallback);
    method public boolean hasSession();
    method public boolean isQueuingSupported();
    method public boolean isRemotePlaybackSupported();
    method public boolean isSessionManagementSupported();
    method public void pause(android.os.Bundle, android.support.v7.media.RemotePlaybackClient.SessionActionCallback);
    method public void play(android.net.Uri, java.lang.String, android.os.Bundle, long, android.os.Bundle, android.support.v7.media.RemotePlaybackClient.ItemActionCallback);
    method public void release();
    method public void remove(java.lang.String, android.os.Bundle, android.support.v7.media.RemotePlaybackClient.ItemActionCallback);
    method public void resume(android.os.Bundle, android.support.v7.media.RemotePlaybackClient.SessionActionCallback);
    method public void seek(java.lang.String, long, android.os.Bundle, android.support.v7.media.RemotePlaybackClient.ItemActionCallback);
    method public void setSessionId(java.lang.String);
    method public void setStatusCallback(android.support.v7.media.RemotePlaybackClient.StatusCallback);
    method public void startSession(android.os.Bundle, android.support.v7.media.RemotePlaybackClient.SessionActionCallback);
    method public void stop(android.os.Bundle, android.support.v7.media.RemotePlaybackClient.SessionActionCallback);
  }

  public static abstract class RemotePlaybackClient.ActionCallback {
    ctor public RemotePlaybackClient.ActionCallback();
    method public void onError(java.lang.String, int, android.os.Bundle);
  }

  public static abstract class RemotePlaybackClient.ItemActionCallback extends android.support.v7.media.RemotePlaybackClient.ActionCallback {
    ctor public RemotePlaybackClient.ItemActionCallback();
    method public void onResult(android.os.Bundle, java.lang.String, android.support.v7.media.MediaSessionStatus, java.lang.String, android.support.v7.media.MediaItemStatus);
  }

  public static abstract class RemotePlaybackClient.SessionActionCallback extends android.support.v7.media.RemotePlaybackClient.ActionCallback {
    ctor public RemotePlaybackClient.SessionActionCallback();
    method public void onResult(android.os.Bundle, java.lang.String, android.support.v7.media.MediaSessionStatus);
  }

  public static abstract class RemotePlaybackClient.StatusCallback {
    ctor public RemotePlaybackClient.StatusCallback();
    method public void onItemStatusChanged(android.os.Bundle, java.lang.String, android.support.v7.media.MediaSessionStatus, java.lang.String, android.support.v7.media.MediaItemStatus);
    method public void onSessionChanged(java.lang.String);
    method public void onSessionStatusChanged(android.os.Bundle, java.lang.String, android.support.v7.media.MediaSessionStatus);
  }

}