From 79fa4630bbca7c6c251eea99fe8997e4b45becee Mon Sep 17 00:00:00 2001 From: RoboErik Date: Tue, 27 May 2014 16:49:09 -0700 Subject: API changes to sessions Changes requested by API Council review. A second CL will refactor TransportController and TransportPerformer based on feedback. Change-Id: Ie26a7d01d7021232a66c2edf1eb58120437fdfde --- api/current.txt | 100 ++++++++++++++++++++++++++------------------------------ 1 file changed, 46 insertions(+), 54 deletions(-) (limited to 'api') diff --git a/api/current.txt b/api/current.txt index df908e0..acf6e87 100644 --- a/api/current.txt +++ b/api/current.txt @@ -14583,6 +14583,7 @@ package android.media { method public long getLong(java.lang.String); method public android.media.Rating getRating(java.lang.String); method public java.lang.String getString(java.lang.String); + method public java.util.Set keySet(); method public int size(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator CREATOR; @@ -15720,16 +15721,16 @@ package android.media.session { public final class MediaController { method public void addCallback(android.media.session.MediaController.Callback); method public void addCallback(android.media.session.MediaController.Callback, android.os.Handler); + method public boolean dispatchMediaButtonEvent(android.view.KeyEvent); method public static android.media.session.MediaController fromToken(android.media.session.MediaSessionToken); method public android.media.session.TransportController getTransportController(); method public void removeCallback(android.media.session.MediaController.Callback); - method public void sendCommand(java.lang.String, android.os.Bundle, android.os.ResultReceiver); - method public void sendMediaButton(int); + method public void sendControlCommand(java.lang.String, android.os.Bundle, android.os.ResultReceiver); } public static abstract class MediaController.Callback { ctor public MediaController.Callback(); - method public void onEvent(java.lang.String, android.os.Bundle); + method public void onSessionEvent(java.lang.String, android.os.Bundle); } public final class MediaSession { @@ -15740,36 +15741,27 @@ package android.media.session { method public boolean isActive(); method public void release(); method public void removeCallback(android.media.session.MediaSession.Callback); - method public void sendEvent(java.lang.String, android.os.Bundle); + method public void sendSessionEvent(java.lang.String, android.os.Bundle); method public void setActive(boolean); method public void setFlags(int); method public void setLaunchPendingIntent(android.app.PendingIntent); - method public void useLocalPlayback(int); - method public void useRemotePlayback(android.media.session.RemoteVolumeProvider); + method public void setPlaybackToLocal(int); + method public void setPlaybackToRemote(android.media.session.RemoteVolumeProvider); field public static final int FLAG_HANDLES_MEDIA_BUTTONS = 1; // 0x1 field public static final int FLAG_HANDLES_TRANSPORT_CONTROLS = 2; // 0x2 } public static abstract class MediaSession.Callback { ctor public MediaSession.Callback(); - method public void onCommand(java.lang.String, android.os.Bundle, android.os.ResultReceiver); - method public void onMediaButton(android.content.Intent); - } - - public final class MediaSessionInfo implements android.os.Parcelable { - method public int describeContents(); - method public java.lang.String getId(); - method public java.lang.String getPackageName(); - method public void writeToParcel(android.os.Parcel, int); - field public static final android.os.Parcelable.Creator CREATOR; + method public void onControlCommand(java.lang.String, android.os.Bundle, android.os.ResultReceiver); + method public void onMediaButtonEvent(android.content.Intent); } public final class MediaSessionManager { method public android.media.session.MediaSession createSession(java.lang.String); - method public java.util.List getActiveSessions(android.content.ComponentName); } - public class MediaSessionToken implements android.os.Parcelable { + public final class MediaSessionToken implements android.os.Parcelable { method public int describeContents(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator CREATOR; @@ -15781,49 +15773,50 @@ package android.media.session { method public int describeContents(); method public long getActions(); method public long getBufferPosition(); - method public java.lang.String getErrorMessage(); + method public java.lang.CharSequence getErrorMessage(); + method public float getPlaybackRate(); method public long getPosition(); - method public float getRate(); method public int getState(); method public void setActions(long); method public void setBufferPosition(long); - method public void setErrorMessage(java.lang.String); + method public void setErrorMessage(java.lang.CharSequence); method public void setState(int, long, float); method public void writeToParcel(android.os.Parcel, int); - field public static final long ACTION_FASTFORWARD = 64L; // 0x40L - field public static final long ACTION_NEXT_ITEM = 32L; // 0x20L + field public static final long ACTION_FAST_FORWARD = 64L; // 0x40L field public static final long ACTION_PAUSE = 2L; // 0x2L field public static final long ACTION_PLAY = 4L; // 0x4L field public static final long ACTION_PLAY_PAUSE = 512L; // 0x200L - field public static final long ACTION_PREVIOUS_ITEM = 16L; // 0x10L - field public static final long ACTION_RATING = 128L; // 0x80L field public static final long ACTION_REWIND = 8L; // 0x8L field public static final long ACTION_SEEK_TO = 256L; // 0x100L + field public static final long ACTION_SET_RATING = 128L; // 0x80L + field public static final long ACTION_SKIP_TO_NEXT = 32L; // 0x20L + field public static final long ACTION_SKIP_TO_PREVIOUS = 16L; // 0x10L field public static final long ACTION_STOP = 1L; // 0x1L field public static final android.os.Parcelable.Creator CREATOR; field public static final long PLAYBACK_POSITION_UNKNOWN = -1L; // 0xffffffffffffffffL - field public static final int PLAYSTATE_BUFFERING = 6; // 0x6 - field public static final int PLAYSTATE_ERROR = 7; // 0x7 - field public static final int PLAYSTATE_FAST_FORWARDING = 4; // 0x4 - field public static final int PLAYSTATE_NONE = 0; // 0x0 - field public static final int PLAYSTATE_PAUSED = 2; // 0x2 - field public static final int PLAYSTATE_PLAYING = 3; // 0x3 - field public static final int PLAYSTATE_REWINDING = 5; // 0x5 - field public static final int PLAYSTATE_SKIPPING_BACKWARDS = 9; // 0x9 - field public static final int PLAYSTATE_SKIPPING_FORWARDS = 10; // 0xa - field public static final int PLAYSTATE_STOPPED = 1; // 0x1 + field public static final int STATE_BUFFERING = 6; // 0x6 + field public static final int STATE_ERROR = 7; // 0x7 + field public static final int STATE_FAST_FORWARDING = 4; // 0x4 + field public static final int STATE_NONE = 0; // 0x0 + field public static final int STATE_PAUSED = 2; // 0x2 + field public static final int STATE_PLAYING = 3; // 0x3 + field public static final int STATE_REWINDING = 5; // 0x5 + field public static final int STATE_SKIPPING_TO_NEXT = 10; // 0xa + field public static final int STATE_SKIPPING_TO_PREVIOUS = 9; // 0x9 + field public static final int STATE_STOPPED = 1; // 0x1 } public abstract class RemoteVolumeProvider { ctor public RemoteVolumeProvider(int, int); - method public abstract int getCurrentVolume(); method public final int getFlags(); method public final int getMaxVolume(); method public final void notifyVolumeChanged(); - method public void onAdjustVolume(int); - method public void onSetVolume(int); - field public static final int FLAG_VOLUME_ABSOLUTE = 2; // 0x2 - field public static final int FLAG_VOLUME_RELATIVE = 1; // 0x1 + method public void onAdjustVolumeBy(int); + method public abstract int onGetCurrentVolume(); + method public void onSetVolumeTo(int); + field public static final int VOLUME_CONTROL_ABSOLUTE = 4; // 0x4 + field public static final int VOLUME_CONTROL_FIXED = 1; // 0x1 + field public static final int VOLUME_CONTROL_RELATIVE = 2; // 0x2 } public final class TransportController { @@ -15833,14 +15826,14 @@ package android.media.session { method public android.media.MediaMetadata getMetadata(); method public android.media.session.PlaybackState getPlaybackState(); method public int getRatingType(); - method public void next(); method public void pause(); method public void play(); - method public void previous(); - method public void rate(android.media.Rating); method public void removeStateListener(android.media.session.TransportController.TransportStateListener); method public void rewind(); method public void seekTo(long); + method public void setRating(android.media.Rating); + method public void skipToNext(); + method public void skipToPrevious(); method public void stop(); } @@ -15851,24 +15844,23 @@ package android.media.session { } public final class TransportPerformer { - method public void addListener(android.media.session.TransportPerformer.Listener); - method public void addListener(android.media.session.TransportPerformer.Listener, android.os.Handler); - method public void removeListener(android.media.session.TransportPerformer.Listener); - method public final void setMetadata(android.media.MediaMetadata); - method public final void setPlaybackState(android.media.session.PlaybackState); + method public void addCallback(android.media.session.TransportPerformer.Callback); + method public void addCallback(android.media.session.TransportPerformer.Callback, android.os.Handler); + method public void removeCallback(android.media.session.TransportPerformer.Callback); + method public void setMetadata(android.media.MediaMetadata); + method public void setPlaybackState(android.media.session.PlaybackState); } - public static abstract class TransportPerformer.Listener { - ctor public TransportPerformer.Listener(); + public static abstract class TransportPerformer.Callback { + ctor public TransportPerformer.Callback(); method public void onFastForward(); - method public void onNext(); method public void onPause(); method public void onPlay(); - method public void onPrevious(); - method public void onRate(android.media.Rating); method public void onRewind(); - method public void onRouteFocusChange(int); method public void onSeekTo(long); + method public void onSetRating(android.media.Rating); + method public void onSkipToNext(); + method public void onSkipToPrevious(); method public void onStop(); } -- cgit v1.1 From c47fa84b0a6bda48c38ba8822481ce613bafd019 Mon Sep 17 00:00:00 2001 From: RoboErik Date: Wed, 28 May 2014 17:36:42 -0700 Subject: Refactor transport controls APIs This merges TransportPerformer into MediaSession + a TransportControlsCallback and makes TransportController into an inner class on MediaController called TransportControls. Also makes the PlaybackState and Metadata part of the session APIs instead of transport controls. Change-Id: I16ad392e6d318abe3119ad5d89656d253af25e16 --- api/current.txt | 91 +++++++++++++++++++++++++-------------------------------- 1 file changed, 40 insertions(+), 51 deletions(-) (limited to 'api') diff --git a/api/current.txt b/api/current.txt index acf6e87..34a3a48 100644 --- a/api/current.txt +++ b/api/current.txt @@ -15723,28 +15723,49 @@ package android.media.session { method public void addCallback(android.media.session.MediaController.Callback, android.os.Handler); method public boolean dispatchMediaButtonEvent(android.view.KeyEvent); method public static android.media.session.MediaController fromToken(android.media.session.MediaSessionToken); - method public android.media.session.TransportController getTransportController(); + method public android.media.MediaMetadata getMetadata(); + method public android.media.session.PlaybackState getPlaybackState(); + method public int getRatingType(); + method public android.media.session.MediaController.TransportControls getTransportControls(); method public void removeCallback(android.media.session.MediaController.Callback); method public void sendControlCommand(java.lang.String, android.os.Bundle, android.os.ResultReceiver); } public static abstract class MediaController.Callback { ctor public MediaController.Callback(); + method public void onMetadataChanged(android.media.MediaMetadata); + method public void onPlaybackStateChanged(android.media.session.PlaybackState); method public void onSessionEvent(java.lang.String, android.os.Bundle); } + public final class MediaController.TransportControls { + method public void fastForward(); + method public void pause(); + method public void play(); + method public void rewind(); + method public void seekTo(long); + method public void setRating(android.media.Rating); + method public void skipToNext(); + method public void skipToPrevious(); + method public void stop(); + } + public final class MediaSession { method public void addCallback(android.media.session.MediaSession.Callback); method public void addCallback(android.media.session.MediaSession.Callback, android.os.Handler); + method public void addTransportControlsCallback(android.media.session.MediaSession.TransportControlsCallback); + method public void addTransportControlsCallback(android.media.session.MediaSession.TransportControlsCallback, android.os.Handler); method public android.media.session.MediaSessionToken getSessionToken(); - method public android.media.session.TransportPerformer getTransportPerformer(); method public boolean isActive(); method public void release(); method public void removeCallback(android.media.session.MediaSession.Callback); + method public void removeTransportControlsCallback(android.media.session.MediaSession.TransportControlsCallback); method public void sendSessionEvent(java.lang.String, android.os.Bundle); method public void setActive(boolean); method public void setFlags(int); method public void setLaunchPendingIntent(android.app.PendingIntent); + method public void setMetadata(android.media.MediaMetadata); + method public void setPlaybackState(android.media.session.PlaybackState); method public void setPlaybackToLocal(int); method public void setPlaybackToRemote(android.media.session.RemoteVolumeProvider); field public static final int FLAG_HANDLES_MEDIA_BUTTONS = 1; // 0x1 @@ -15757,6 +15778,19 @@ package android.media.session { method public void onMediaButtonEvent(android.content.Intent); } + public static abstract class MediaSession.TransportControlsCallback { + ctor public MediaSession.TransportControlsCallback(); + method public void onFastForward(); + method public void onPause(); + method public void onPlay(); + method public void onRewind(); + method public void onSeekTo(long); + method public void onSetRating(android.media.Rating); + method public void onSkipToNext(); + method public void onSkipToPrevious(); + method public void onStop(); + } + public final class MediaSessionManager { method public android.media.session.MediaSession createSession(java.lang.String); } @@ -15808,60 +15842,15 @@ package android.media.session { public abstract class RemoteVolumeProvider { ctor public RemoteVolumeProvider(int, int); - method public final int getFlags(); method public final int getMaxVolume(); + method public final int getVolumeControl(); method public final void notifyVolumeChanged(); method public void onAdjustVolumeBy(int); method public abstract int onGetCurrentVolume(); method public void onSetVolumeTo(int); - field public static final int VOLUME_CONTROL_ABSOLUTE = 4; // 0x4 - field public static final int VOLUME_CONTROL_FIXED = 1; // 0x1 - field public static final int VOLUME_CONTROL_RELATIVE = 2; // 0x2 - } - - public final class TransportController { - method public void addStateListener(android.media.session.TransportController.TransportStateListener); - method public void addStateListener(android.media.session.TransportController.TransportStateListener, android.os.Handler); - method public void fastForward(); - method public android.media.MediaMetadata getMetadata(); - method public android.media.session.PlaybackState getPlaybackState(); - method public int getRatingType(); - method public void pause(); - method public void play(); - method public void removeStateListener(android.media.session.TransportController.TransportStateListener); - method public void rewind(); - method public void seekTo(long); - method public void setRating(android.media.Rating); - method public void skipToNext(); - method public void skipToPrevious(); - method public void stop(); - } - - public static abstract class TransportController.TransportStateListener { - ctor public TransportController.TransportStateListener(); - method public void onMetadataChanged(android.media.MediaMetadata); - method public void onPlaybackStateChanged(android.media.session.PlaybackState); - } - - public final class TransportPerformer { - method public void addCallback(android.media.session.TransportPerformer.Callback); - method public void addCallback(android.media.session.TransportPerformer.Callback, android.os.Handler); - method public void removeCallback(android.media.session.TransportPerformer.Callback); - method public void setMetadata(android.media.MediaMetadata); - method public void setPlaybackState(android.media.session.PlaybackState); - } - - public static abstract class TransportPerformer.Callback { - ctor public TransportPerformer.Callback(); - method public void onFastForward(); - method public void onPause(); - method public void onPlay(); - method public void onRewind(); - method public void onSeekTo(long); - method public void onSetRating(android.media.Rating); - method public void onSkipToNext(); - method public void onSkipToPrevious(); - method public void onStop(); + field public static final int VOLUME_CONTROL_ABSOLUTE = 2; // 0x2 + field public static final int VOLUME_CONTROL_FIXED = 0; // 0x0 + field public static final int VOLUME_CONTROL_RELATIVE = 1; // 0x1 } } -- cgit v1.1