blob: 1b3f1105a9388747f7bc60a5e6488bb2f2417d5e [file] [log] [blame]
// Signature format: 3.0
package androidx.media2.session {
@androidx.versionedparcelable.VersionedParcelize public final class HeartRating implements androidx.media2.common.Rating {
ctor public HeartRating();
ctor public HeartRating(boolean);
method public boolean hasHeart();
method public boolean isRated();
}
@androidx.versionedparcelable.VersionedParcelize(isCustom=true) public class LibraryResult extends androidx.versionedparcelable.CustomVersionedParcelable implements androidx.media2.common.BaseResult {
ctor public LibraryResult(@androidx.media2.session.LibraryResult.ResultCode int);
ctor public LibraryResult(@androidx.media2.session.LibraryResult.ResultCode int, androidx.media2.common.MediaItem?, androidx.media2.session.MediaLibraryService.LibraryParams?);
ctor public LibraryResult(@androidx.media2.session.LibraryResult.ResultCode int, java.util.List<androidx.media2.common.MediaItem!>?, androidx.media2.session.MediaLibraryService.LibraryParams?);
method public long getCompletionTime();
method public androidx.media2.session.MediaLibraryService.LibraryParams? getLibraryParams();
method public androidx.media2.common.MediaItem? getMediaItem();
method public java.util.List<androidx.media2.common.MediaItem!>? getMediaItems();
method @androidx.media2.session.LibraryResult.ResultCode public int getResultCode();
field public static final int RESULT_ERROR_SESSION_AUTHENTICATION_EXPIRED = -102; // 0xffffff9a
field public static final int RESULT_ERROR_SESSION_CONCURRENT_STREAM_LIMIT = -104; // 0xffffff98
field public static final int RESULT_ERROR_SESSION_DISCONNECTED = -100; // 0xffffff9c
field public static final int RESULT_ERROR_SESSION_NOT_AVAILABLE_IN_REGION = -106; // 0xffffff96
field public static final int RESULT_ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED = -105; // 0xffffff97
field public static final int RESULT_ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED = -103; // 0xffffff99
field public static final int RESULT_ERROR_SESSION_SETUP_REQUIRED = -108; // 0xffffff94
field public static final int RESULT_ERROR_SESSION_SKIP_LIMIT_REACHED = -107; // 0xffffff95
}
@IntDef(flag=false, value={androidx.media2.common.BaseResult.RESULT_SUCCESS, androidx.media2.common.BaseResult.RESULT_ERROR_UNKNOWN, androidx.media2.common.BaseResult.RESULT_ERROR_INVALID_STATE, androidx.media2.common.BaseResult.RESULT_ERROR_BAD_VALUE, androidx.media2.common.BaseResult.RESULT_ERROR_PERMISSION_DENIED, androidx.media2.common.BaseResult.RESULT_ERROR_IO, androidx.media2.common.BaseResult.RESULT_INFO_SKIPPED, androidx.media2.session.RemoteResult.RESULT_ERROR_SESSION_DISCONNECTED, androidx.media2.common.BaseResult.RESULT_ERROR_NOT_SUPPORTED, androidx.media2.session.RemoteResult.RESULT_ERROR_SESSION_AUTHENTICATION_EXPIRED, androidx.media2.session.RemoteResult.RESULT_ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED, androidx.media2.session.RemoteResult.RESULT_ERROR_SESSION_CONCURRENT_STREAM_LIMIT, androidx.media2.session.RemoteResult.RESULT_ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED, androidx.media2.session.RemoteResult.RESULT_ERROR_SESSION_NOT_AVAILABLE_IN_REGION, androidx.media2.session.RemoteResult.RESULT_ERROR_SESSION_SKIP_LIMIT_REACHED, androidx.media2.session.RemoteResult.RESULT_ERROR_SESSION_SETUP_REQUIRED}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface LibraryResult.ResultCode {
}
public class MediaBrowser extends androidx.media2.session.MediaController {
method public androidx.concurrent.ListenableFuture<androidx.media2.session.LibraryResult!> getChildren(String, @IntRange(from=0) int, @IntRange(from=1) int, androidx.media2.session.MediaLibraryService.LibraryParams?);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.LibraryResult!> getItem(String);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.LibraryResult!> getLibraryRoot(androidx.media2.session.MediaLibraryService.LibraryParams?);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.LibraryResult!> getSearchResult(String, @IntRange(from=0) int, @IntRange(from=1) int, androidx.media2.session.MediaLibraryService.LibraryParams?);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.LibraryResult!> search(String, androidx.media2.session.MediaLibraryService.LibraryParams?);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.LibraryResult!> subscribe(String, androidx.media2.session.MediaLibraryService.LibraryParams?);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.LibraryResult!> unsubscribe(String);
}
public static class MediaBrowser.BrowserCallback extends androidx.media2.session.MediaController.ControllerCallback {
ctor public MediaBrowser.BrowserCallback();
method public void onChildrenChanged(androidx.media2.session.MediaBrowser, String, @IntRange(from=0) int, androidx.media2.session.MediaLibraryService.LibraryParams?);
method public void onSearchResultChanged(androidx.media2.session.MediaBrowser, String, @IntRange(from=0) int, androidx.media2.session.MediaLibraryService.LibraryParams?);
}
public static final class MediaBrowser.Builder {
ctor public MediaBrowser.Builder(android.content.Context);
method public androidx.media2.session.MediaBrowser build();
method public androidx.media2.session.MediaBrowser.Builder setConnectionHints(android.os.Bundle);
method public androidx.media2.session.MediaBrowser.Builder setControllerCallback(java.util.concurrent.Executor, androidx.media2.session.MediaBrowser.BrowserCallback);
method public androidx.media2.session.MediaBrowser.Builder setSessionCompatToken(android.support.v4.media.session.MediaSessionCompat.Token);
method public androidx.media2.session.MediaBrowser.Builder setSessionToken(androidx.media2.session.SessionToken);
}
public class MediaController implements java.lang.AutoCloseable {
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> addPlaylistItem(@IntRange(from=0) int, String);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> adjustVolume(@androidx.media2.session.MediaController.VolumeDirection int, @androidx.media2.session.MediaController.VolumeFlags int);
method public void close();
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> fastForward();
method public long getBufferedPosition();
method @androidx.media2.common.SessionPlayer.BuffState public int getBufferingState();
method public androidx.media2.session.SessionToken? getConnectedToken();
method public androidx.media2.common.MediaItem? getCurrentMediaItem();
method public int getCurrentMediaItemIndex();
method public long getCurrentPosition();
method public long getDuration();
method public int getNextMediaItemIndex();
method public androidx.media2.session.MediaController.PlaybackInfo? getPlaybackInfo();
method public float getPlaybackSpeed();
method public int getPlayerState();
method public java.util.List<androidx.media2.common.MediaItem!>? getPlaylist();
method public androidx.media2.common.MediaMetadata? getPlaylistMetadata();
method public int getPreviousMediaItemIndex();
method @androidx.media2.common.SessionPlayer.RepeatMode public int getRepeatMode();
method public android.app.PendingIntent? getSessionActivity();
method @androidx.media2.common.SessionPlayer.ShuffleMode public int getShuffleMode();
method public boolean isConnected();
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> pause();
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> play();
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> playFromMediaId(String, android.os.Bundle?);
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> playFromSearch(String, android.os.Bundle?);
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> playFromUri(android.net.Uri, android.os.Bundle?);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> prepare();
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> prepareFromMediaId(String, android.os.Bundle?);
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> prepareFromSearch(String, android.os.Bundle?);
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> prepareFromUri(android.net.Uri, android.os.Bundle?);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> removePlaylistItem(@IntRange(from=0) int);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> replacePlaylistItem(@IntRange(from=0) int, String);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> rewind();
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> seekTo(long);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> sendCustomCommand(androidx.media2.session.SessionCommand, android.os.Bundle?);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> setMediaItem(String);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> setPlaybackSpeed(float);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> setPlaylist(java.util.List<java.lang.String!>, androidx.media2.common.MediaMetadata?);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> setRating(String, androidx.media2.common.Rating);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> setRepeatMode(@androidx.media2.common.SessionPlayer.RepeatMode int);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> setShuffleMode(@androidx.media2.common.SessionPlayer.ShuffleMode int);
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public void setTimeDiff(Long!);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> setVolumeTo(int, @androidx.media2.session.MediaController.VolumeFlags int);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> skipBackward();
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> skipForward();
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> skipToNextPlaylistItem();
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> skipToPlaylistItem(@IntRange(from=0) int);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> skipToPreviousPlaylistItem();
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> updatePlaylistMetadata(androidx.media2.common.MediaMetadata?);
}
public static final class MediaController.Builder {
ctor public MediaController.Builder(android.content.Context);
method public androidx.media2.session.MediaController build();
method public androidx.media2.session.MediaController.Builder setConnectionHints(android.os.Bundle);
method public androidx.media2.session.MediaController.Builder setControllerCallback(java.util.concurrent.Executor, androidx.media2.session.MediaController.ControllerCallback);
method public androidx.media2.session.MediaController.Builder setSessionCompatToken(android.support.v4.media.session.MediaSessionCompat.Token);
method public androidx.media2.session.MediaController.Builder setSessionToken(androidx.media2.session.SessionToken);
}
public abstract static class MediaController.ControllerCallback {
ctor public MediaController.ControllerCallback();
method public void onAllowedCommandsChanged(androidx.media2.session.MediaController, androidx.media2.session.SessionCommandGroup);
method public void onBufferingStateChanged(androidx.media2.session.MediaController, androidx.media2.common.MediaItem, @androidx.media2.common.SessionPlayer.BuffState int);
method public void onConnected(androidx.media2.session.MediaController, androidx.media2.session.SessionCommandGroup);
method public void onCurrentMediaItemChanged(androidx.media2.session.MediaController, androidx.media2.common.MediaItem?);
method public androidx.media2.session.SessionResult onCustomCommand(androidx.media2.session.MediaController, androidx.media2.session.SessionCommand, android.os.Bundle?);
method public void onDisconnected(androidx.media2.session.MediaController);
method public void onPlaybackCompleted(androidx.media2.session.MediaController);
method public void onPlaybackInfoChanged(androidx.media2.session.MediaController, androidx.media2.session.MediaController.PlaybackInfo);
method public void onPlaybackSpeedChanged(androidx.media2.session.MediaController, float);
method public void onPlayerStateChanged(androidx.media2.session.MediaController, @androidx.media2.common.SessionPlayer.PlayerState int);
method public void onPlaylistChanged(androidx.media2.session.MediaController, java.util.List<androidx.media2.common.MediaItem!>?, androidx.media2.common.MediaMetadata?);
method public void onPlaylistMetadataChanged(androidx.media2.session.MediaController, androidx.media2.common.MediaMetadata?);
method public void onRepeatModeChanged(androidx.media2.session.MediaController, @androidx.media2.common.SessionPlayer.RepeatMode int);
method public void onSeekCompleted(androidx.media2.session.MediaController, long);
method @androidx.media2.session.SessionResult.ResultCode public int onSetCustomLayout(androidx.media2.session.MediaController, java.util.List<androidx.media2.session.MediaSession.CommandButton!>);
method public void onShuffleModeChanged(androidx.media2.session.MediaController, @androidx.media2.common.SessionPlayer.ShuffleMode int);
}
@androidx.versionedparcelable.VersionedParcelize public static final class MediaController.PlaybackInfo implements androidx.versionedparcelable.VersionedParcelable {
method public androidx.media.AudioAttributesCompat? getAudioAttributes();
method public int getControlType();
method public int getCurrentVolume();
method public int getMaxVolume();
method public int getPlaybackType();
field public static final int PLAYBACK_TYPE_LOCAL = 1; // 0x1
field public static final int PLAYBACK_TYPE_REMOTE = 2; // 0x2
}
@IntDef({android.media.AudioManager.ADJUST_LOWER, android.media.AudioManager.ADJUST_RAISE, android.media.AudioManager.ADJUST_SAME, android.media.AudioManager.ADJUST_MUTE, android.media.AudioManager.ADJUST_UNMUTE, android.media.AudioManager.ADJUST_TOGGLE_MUTE}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface MediaController.VolumeDirection {
}
@IntDef(value={android.media.AudioManager.FLAG_SHOW_UI, android.media.AudioManager.FLAG_ALLOW_RINGER_MODES, android.media.AudioManager.FLAG_PLAY_SOUND, android.media.AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE, android.media.AudioManager.FLAG_VIBRATE}, flag=true) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface MediaController.VolumeFlags {
}
public abstract class MediaLibraryService extends androidx.media2.session.MediaSessionService {
ctor public MediaLibraryService();
method public abstract androidx.media2.session.MediaLibraryService.MediaLibrarySession? onGetSession(androidx.media2.session.MediaSession.ControllerInfo);
field public static final String SERVICE_INTERFACE = "androidx.media2.session.MediaLibraryService";
}
@androidx.versionedparcelable.VersionedParcelize public static final class MediaLibraryService.LibraryParams implements androidx.versionedparcelable.VersionedParcelable {
method public android.os.Bundle? getExtras();
method public boolean isOffline();
method public boolean isRecent();
method public boolean isSuggested();
}
public static final class MediaLibraryService.LibraryParams.Builder {
ctor public MediaLibraryService.LibraryParams.Builder();
method public androidx.media2.session.MediaLibraryService.LibraryParams build();
method public androidx.media2.session.MediaLibraryService.LibraryParams.Builder setExtras(android.os.Bundle?);
method public androidx.media2.session.MediaLibraryService.LibraryParams.Builder setOffline(boolean);
method public androidx.media2.session.MediaLibraryService.LibraryParams.Builder setRecent(boolean);
method public androidx.media2.session.MediaLibraryService.LibraryParams.Builder setSuggested(boolean);
}
public static final class MediaLibraryService.MediaLibrarySession extends androidx.media2.session.MediaSession {
method public void notifyChildrenChanged(androidx.media2.session.MediaSession.ControllerInfo, String, @IntRange(from=0) int, androidx.media2.session.MediaLibraryService.LibraryParams?);
method public void notifyChildrenChanged(String, int, androidx.media2.session.MediaLibraryService.LibraryParams?);
method public void notifySearchResultChanged(androidx.media2.session.MediaSession.ControllerInfo, String, @IntRange(from=0) int, androidx.media2.session.MediaLibraryService.LibraryParams?);
}
public static final class MediaLibraryService.MediaLibrarySession.Builder {
ctor public MediaLibraryService.MediaLibrarySession.Builder(androidx.media2.session.MediaLibraryService, androidx.media2.common.SessionPlayer, java.util.concurrent.Executor, androidx.media2.session.MediaLibraryService.MediaLibrarySession.MediaLibrarySessionCallback);
method public androidx.media2.session.MediaLibraryService.MediaLibrarySession build();
method public androidx.media2.session.MediaLibraryService.MediaLibrarySession.Builder setExtras(android.os.Bundle);
method public androidx.media2.session.MediaLibraryService.MediaLibrarySession.Builder setId(String);
method public androidx.media2.session.MediaLibraryService.MediaLibrarySession.Builder setSessionActivity(android.app.PendingIntent?);
}
public static class MediaLibraryService.MediaLibrarySession.MediaLibrarySessionCallback extends androidx.media2.session.MediaSession.SessionCallback {
ctor public MediaLibraryService.MediaLibrarySession.MediaLibrarySessionCallback();
method public androidx.media2.session.LibraryResult onGetChildren(androidx.media2.session.MediaLibraryService.MediaLibrarySession, androidx.media2.session.MediaSession.ControllerInfo, String, @IntRange(from=0) int, @IntRange(from=1) int, androidx.media2.session.MediaLibraryService.LibraryParams?);
method public androidx.media2.session.LibraryResult onGetItem(androidx.media2.session.MediaLibraryService.MediaLibrarySession, androidx.media2.session.MediaSession.ControllerInfo, String);
method public androidx.media2.session.LibraryResult onGetLibraryRoot(androidx.media2.session.MediaLibraryService.MediaLibrarySession, androidx.media2.session.MediaSession.ControllerInfo, androidx.media2.session.MediaLibraryService.LibraryParams?);
method public androidx.media2.session.LibraryResult onGetSearchResult(androidx.media2.session.MediaLibraryService.MediaLibrarySession, androidx.media2.session.MediaSession.ControllerInfo, String, @IntRange(from=0) int, @IntRange(from=1) int, androidx.media2.session.MediaLibraryService.LibraryParams?);
method @androidx.media2.session.LibraryResult.ResultCode public int onSearch(androidx.media2.session.MediaLibraryService.MediaLibrarySession, androidx.media2.session.MediaSession.ControllerInfo, String, androidx.media2.session.MediaLibraryService.LibraryParams?);
method @androidx.media2.session.LibraryResult.ResultCode public int onSubscribe(androidx.media2.session.MediaLibraryService.MediaLibrarySession, androidx.media2.session.MediaSession.ControllerInfo, String, androidx.media2.session.MediaLibraryService.LibraryParams?);
method @androidx.media2.session.LibraryResult.ResultCode public int onUnsubscribe(androidx.media2.session.MediaLibraryService.MediaLibrarySession, androidx.media2.session.MediaSession.ControllerInfo, String);
}
public class MediaSession implements java.lang.AutoCloseable {
method public void broadcastCustomCommand(androidx.media2.session.SessionCommand, android.os.Bundle?);
method public void close();
method public java.util.List<androidx.media2.session.MediaSession.ControllerInfo!> getConnectedControllers();
method public String getId();
method public androidx.media2.common.SessionPlayer getPlayer();
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.support.v4.media.session.MediaSessionCompat! getSessionCompat();
method public androidx.media2.session.SessionToken getToken();
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public boolean isClosed();
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> sendCustomCommand(androidx.media2.session.MediaSession.ControllerInfo, androidx.media2.session.SessionCommand, android.os.Bundle?);
method public void setAllowedCommands(androidx.media2.session.MediaSession.ControllerInfo, androidx.media2.session.SessionCommandGroup);
method public androidx.concurrent.ListenableFuture<androidx.media2.session.SessionResult!> setCustomLayout(androidx.media2.session.MediaSession.ControllerInfo, java.util.List<androidx.media2.session.MediaSession.CommandButton!>);
method public void updatePlayer(androidx.media2.common.SessionPlayer);
}
public static final class MediaSession.Builder {
ctor public MediaSession.Builder(android.content.Context, androidx.media2.common.SessionPlayer);
method public androidx.media2.session.MediaSession build();
method public androidx.media2.session.MediaSession.Builder setExtras(android.os.Bundle);
method public androidx.media2.session.MediaSession.Builder setId(String);
method public androidx.media2.session.MediaSession.Builder setSessionActivity(android.app.PendingIntent?);
method public androidx.media2.session.MediaSession.Builder setSessionCallback(java.util.concurrent.Executor, androidx.media2.session.MediaSession.SessionCallback);
}
@androidx.versionedparcelable.VersionedParcelize public static final class MediaSession.CommandButton implements androidx.versionedparcelable.VersionedParcelable {
method public androidx.media2.session.SessionCommand? getCommand();
method public CharSequence? getDisplayName();
method public android.os.Bundle? getExtras();
method public int getIconResId();
method public boolean isEnabled();
}
public static final class MediaSession.CommandButton.Builder {
ctor public MediaSession.CommandButton.Builder();
method public androidx.media2.session.MediaSession.CommandButton build();
method public androidx.media2.session.MediaSession.CommandButton.Builder setCommand(androidx.media2.session.SessionCommand?);
method public androidx.media2.session.MediaSession.CommandButton.Builder setDisplayName(CharSequence?);
method public androidx.media2.session.MediaSession.CommandButton.Builder setEnabled(boolean);
method public androidx.media2.session.MediaSession.CommandButton.Builder setExtras(android.os.Bundle?);
method public androidx.media2.session.MediaSession.CommandButton.Builder setIconResId(int);
}
public static final class MediaSession.ControllerInfo {
method public android.os.Bundle getConnectionHints();
method public String getPackageName();
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public androidx.media.MediaSessionManager.RemoteUserInfo getRemoteUserInfo();
method public int getUid();
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public boolean isTrusted();
}
public abstract static class MediaSession.SessionCallback {
ctor public MediaSession.SessionCallback();
method @androidx.media2.session.SessionResult.ResultCode public int onCommandRequest(androidx.media2.session.MediaSession, androidx.media2.session.MediaSession.ControllerInfo, androidx.media2.session.SessionCommand);
method public androidx.media2.session.SessionCommandGroup? onConnect(androidx.media2.session.MediaSession, androidx.media2.session.MediaSession.ControllerInfo);
method public androidx.media2.common.MediaItem? onCreateMediaItem(androidx.media2.session.MediaSession, androidx.media2.session.MediaSession.ControllerInfo, String);
method public androidx.media2.session.SessionResult onCustomCommand(androidx.media2.session.MediaSession, androidx.media2.session.MediaSession.ControllerInfo, androidx.media2.session.SessionCommand, android.os.Bundle?);
method public void onDisconnected(androidx.media2.session.MediaSession, androidx.media2.session.MediaSession.ControllerInfo);
method @androidx.media2.session.SessionResult.ResultCode public int onFastForward(androidx.media2.session.MediaSession, androidx.media2.session.MediaSession.ControllerInfo);
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.media2.session.SessionResult.ResultCode public int onPlayFromMediaId(androidx.media2.session.MediaSession, androidx.media2.session.MediaSession.ControllerInfo, String, android.os.Bundle?);
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.media2.session.SessionResult.ResultCode public int onPlayFromSearch(androidx.media2.session.MediaSession, androidx.media2.session.MediaSession.ControllerInfo, String, android.os.Bundle?);
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.media2.session.SessionResult.ResultCode public int onPlayFromUri(androidx.media2.session.MediaSession, androidx.media2.session.MediaSession.ControllerInfo, android.net.Uri, android.os.Bundle?);
method public void onPostConnect(androidx.media2.session.MediaSession, androidx.media2.session.MediaSession.ControllerInfo);
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.media2.session.SessionResult.ResultCode public int onPrepareFromMediaId(androidx.media2.session.MediaSession, androidx.media2.session.MediaSession.ControllerInfo, String, android.os.Bundle?);
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.media2.session.SessionResult.ResultCode public int onPrepareFromSearch(androidx.media2.session.MediaSession, androidx.media2.session.MediaSession.ControllerInfo, String, android.os.Bundle?);
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @androidx.media2.session.SessionResult.ResultCode public int onPrepareFromUri(androidx.media2.session.MediaSession, androidx.media2.session.MediaSession.ControllerInfo, android.net.Uri, android.os.Bundle?);
method @androidx.media2.session.SessionResult.ResultCode public int onRewind(androidx.media2.session.MediaSession, androidx.media2.session.MediaSession.ControllerInfo);
method @androidx.media2.session.SessionResult.ResultCode public int onSetRating(androidx.media2.session.MediaSession, androidx.media2.session.MediaSession.ControllerInfo, String, androidx.media2.common.Rating);
method @androidx.media2.session.SessionResult.ResultCode public int onSkipBackward(androidx.media2.session.MediaSession, androidx.media2.session.MediaSession.ControllerInfo);
method @androidx.media2.session.SessionResult.ResultCode public int onSkipForward(androidx.media2.session.MediaSession, androidx.media2.session.MediaSession.ControllerInfo);
}
@RequiresApi(28) public final class MediaSessionManager {
method public static androidx.media2.session.MediaSessionManager getInstance(android.content.Context);
method public java.util.Set<androidx.media2.session.SessionToken!> getSessionServiceTokens();
}
public abstract class MediaSessionService extends android.app.Service {
ctor public MediaSessionService();
method public final void addSession(androidx.media2.session.MediaSession);
method public final java.util.List<androidx.media2.session.MediaSession!> getSessions();
method @CallSuper public android.os.IBinder? onBind(android.content.Intent);
method public abstract androidx.media2.session.MediaSession? onGetSession(androidx.media2.session.MediaSession.ControllerInfo);
method public androidx.media2.session.MediaSessionService.MediaNotification? onUpdateNotification(androidx.media2.session.MediaSession);
method public final void removeSession(androidx.media2.session.MediaSession);
field public static final String SERVICE_INTERFACE = "androidx.media2.session.MediaSessionService";
}
public static class MediaSessionService.MediaNotification {
ctor public MediaSessionService.MediaNotification(int, android.app.Notification);
method public android.app.Notification getNotification();
method public int getNotificationId();
}
@androidx.versionedparcelable.VersionedParcelize public final class PercentageRating implements androidx.media2.common.Rating {
ctor public PercentageRating();
ctor public PercentageRating(float);
method public float getPercentRating();
method public boolean isRated();
}
public abstract class RemoteSessionPlayer extends androidx.media2.common.SessionPlayer {
ctor public RemoteSessionPlayer();
method public abstract java.util.concurrent.Future<androidx.media2.common.SessionPlayer.PlayerResult!> adjustVolume(int);
method public abstract int getMaxVolume();
method public abstract int getVolume();
method @androidx.media2.session.RemoteSessionPlayer.VolumeControlType public abstract int getVolumeControlType();
method public abstract java.util.concurrent.Future<androidx.media2.common.SessionPlayer.PlayerResult!> setVolume(int);
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
}
public static class RemoteSessionPlayer.Callback extends androidx.media2.common.SessionPlayer.PlayerCallback {
ctor public RemoteSessionPlayer.Callback();
method public void onVolumeChanged(androidx.media2.session.RemoteSessionPlayer, int);
}
@IntDef({androidx.media2.session.RemoteSessionPlayer.VOLUME_CONTROL_FIXED, androidx.media2.session.RemoteSessionPlayer.VOLUME_CONTROL_RELATIVE, androidx.media2.session.RemoteSessionPlayer.VOLUME_CONTROL_ABSOLUTE}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface RemoteSessionPlayer.VolumeControlType {
}
@androidx.versionedparcelable.VersionedParcelize public final class SessionCommand implements androidx.versionedparcelable.VersionedParcelable {
ctor public SessionCommand(@androidx.media2.session.SessionCommand.CommandCode int);
ctor public SessionCommand(String, android.os.Bundle?);
method @androidx.media2.session.SessionCommand.CommandCode public int getCommandCode();
method public String? getCustomAction();
method public android.os.Bundle? getCustomExtras();
field public static final int COMMAND_CODE_CUSTOM = 0; // 0x0
field public static final int COMMAND_CODE_LIBRARY_GET_CHILDREN = 50003; // 0xc353
field public static final int COMMAND_CODE_LIBRARY_GET_ITEM = 50004; // 0xc354
field public static final int COMMAND_CODE_LIBRARY_GET_LIBRARY_ROOT = 50000; // 0xc350
field public static final int COMMAND_CODE_LIBRARY_GET_SEARCH_RESULT = 50006; // 0xc356
field public static final int COMMAND_CODE_LIBRARY_SEARCH = 50005; // 0xc355
field public static final int COMMAND_CODE_LIBRARY_SUBSCRIBE = 50001; // 0xc351
field public static final int COMMAND_CODE_LIBRARY_UNSUBSCRIBE = 50002; // 0xc352
field public static final int COMMAND_CODE_PLAYER_ADD_PLAYLIST_ITEM = 10013; // 0x271d
field public static final int COMMAND_CODE_PLAYER_GET_CURRENT_MEDIA_ITEM = 10016; // 0x2720
field public static final int COMMAND_CODE_PLAYER_GET_PLAYLIST = 10005; // 0x2715
field public static final int COMMAND_CODE_PLAYER_GET_PLAYLIST_METADATA = 10012; // 0x271c
field public static final int COMMAND_CODE_PLAYER_PAUSE = 10001; // 0x2711
field public static final int COMMAND_CODE_PLAYER_PLAY = 10000; // 0x2710
field public static final int COMMAND_CODE_PLAYER_PREPARE = 10002; // 0x2712
field public static final int COMMAND_CODE_PLAYER_REMOVE_PLAYLIST_ITEM = 10014; // 0x271e
field public static final int COMMAND_CODE_PLAYER_REPLACE_PLAYLIST_ITEM = 10015; // 0x271f
field public static final int COMMAND_CODE_PLAYER_SEEK_TO = 10003; // 0x2713
field public static final int COMMAND_CODE_PLAYER_SET_MEDIA_ITEM = 10018; // 0x2722
field public static final int COMMAND_CODE_PLAYER_SET_PLAYLIST = 10006; // 0x2716
field public static final int COMMAND_CODE_PLAYER_SET_REPEAT_MODE = 10011; // 0x271b
field public static final int COMMAND_CODE_PLAYER_SET_SHUFFLE_MODE = 10010; // 0x271a
field public static final int COMMAND_CODE_PLAYER_SET_SPEED = 10004; // 0x2714
field public static final int COMMAND_CODE_PLAYER_SKIP_TO_NEXT_PLAYLIST_ITEM = 10009; // 0x2719
field public static final int COMMAND_CODE_PLAYER_SKIP_TO_PLAYLIST_ITEM = 10007; // 0x2717
field public static final int COMMAND_CODE_PLAYER_SKIP_TO_PREVIOUS_PLAYLIST_ITEM = 10008; // 0x2718
field public static final int COMMAND_CODE_PLAYER_UPDATE_LIST_METADATA = 10017; // 0x2721
field public static final int COMMAND_CODE_SESSION_FAST_FORWARD = 40000; // 0x9c40
field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final int COMMAND_CODE_SESSION_PLAY_FROM_MEDIA_ID = 40004; // 0x9c44
field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final int COMMAND_CODE_SESSION_PLAY_FROM_SEARCH = 40005; // 0x9c45
field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final int COMMAND_CODE_SESSION_PLAY_FROM_URI = 40006; // 0x9c46
field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final int COMMAND_CODE_SESSION_PREPARE_FROM_MEDIA_ID = 40007; // 0x9c47
field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final int COMMAND_CODE_SESSION_PREPARE_FROM_SEARCH = 40008; // 0x9c48
field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final int COMMAND_CODE_SESSION_PREPARE_FROM_URI = 40009; // 0x9c49
field public static final int COMMAND_CODE_SESSION_REWIND = 40001; // 0x9c41
field public static final int COMMAND_CODE_SESSION_SET_RATING = 40010; // 0x9c4a
field public static final int COMMAND_CODE_SESSION_SKIP_BACKWARD = 40003; // 0x9c43
field public static final int COMMAND_CODE_SESSION_SKIP_FORWARD = 40002; // 0x9c42
field public static final int COMMAND_CODE_VOLUME_ADJUST_VOLUME = 30001; // 0x7531
field public static final int COMMAND_CODE_VOLUME_SET_VOLUME = 30000; // 0x7530
field public static final int COMMAND_VERSION_1 = 1; // 0x1
field @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static final int COMMAND_VERSION_CURRENT = 1; // 0x1
}
@IntDef({androidx.media2.session.SessionCommand.COMMAND_CODE_CUSTOM, androidx.media2.session.SessionCommand.COMMAND_CODE_PLAYER_PLAY, androidx.media2.session.SessionCommand.COMMAND_CODE_PLAYER_PAUSE, androidx.media2.session.SessionCommand.COMMAND_CODE_PLAYER_PREPARE, androidx.media2.session.SessionCommand.COMMAND_CODE_PLAYER_SEEK_TO, androidx.media2.session.SessionCommand.COMMAND_CODE_PLAYER_SET_SPEED, androidx.media2.session.SessionCommand.COMMAND_CODE_PLAYER_GET_PLAYLIST, androidx.media2.session.SessionCommand.COMMAND_CODE_PLAYER_SET_PLAYLIST, androidx.media2.session.SessionCommand.COMMAND_CODE_PLAYER_SKIP_TO_PLAYLIST_ITEM, androidx.media2.session.SessionCommand.COMMAND_CODE_PLAYER_SKIP_TO_PREVIOUS_PLAYLIST_ITEM, androidx.media2.session.SessionCommand.COMMAND_CODE_PLAYER_SKIP_TO_NEXT_PLAYLIST_ITEM, androidx.media2.session.SessionCommand.COMMAND_CODE_PLAYER_SET_SHUFFLE_MODE, androidx.media2.session.SessionCommand.COMMAND_CODE_PLAYER_SET_REPEAT_MODE, androidx.media2.session.SessionCommand.COMMAND_CODE_PLAYER_GET_PLAYLIST_METADATA, androidx.media2.session.SessionCommand.COMMAND_CODE_PLAYER_ADD_PLAYLIST_ITEM, androidx.media2.session.SessionCommand.COMMAND_CODE_PLAYER_REMOVE_PLAYLIST_ITEM, androidx.media2.session.SessionCommand.COMMAND_CODE_PLAYER_REPLACE_PLAYLIST_ITEM, androidx.media2.session.SessionCommand.COMMAND_CODE_PLAYER_GET_CURRENT_MEDIA_ITEM, androidx.media2.session.SessionCommand.COMMAND_CODE_PLAYER_UPDATE_LIST_METADATA, androidx.media2.session.SessionCommand.COMMAND_CODE_PLAYER_SET_MEDIA_ITEM, 0x2af8, 0x2af9, 0x2afa, androidx.media2.session.SessionCommand.COMMAND_CODE_VOLUME_SET_VOLUME, androidx.media2.session.SessionCommand.COMMAND_CODE_VOLUME_ADJUST_VOLUME, androidx.media2.session.SessionCommand.COMMAND_CODE_SESSION_FAST_FORWARD, androidx.media2.session.SessionCommand.COMMAND_CODE_SESSION_REWIND, androidx.media2.session.SessionCommand.COMMAND_CODE_SESSION_SKIP_FORWARD, androidx.media2.session.SessionCommand.COMMAND_CODE_SESSION_SKIP_BACKWARD, androidx.media2.session.SessionCommand.COMMAND_CODE_SESSION_PLAY_FROM_MEDIA_ID, androidx.media2.session.SessionCommand.COMMAND_CODE_SESSION_PLAY_FROM_SEARCH, androidx.media2.session.SessionCommand.COMMAND_CODE_SESSION_PLAY_FROM_URI, androidx.media2.session.SessionCommand.COMMAND_CODE_SESSION_PREPARE_FROM_MEDIA_ID, androidx.media2.session.SessionCommand.COMMAND_CODE_SESSION_PREPARE_FROM_SEARCH, androidx.media2.session.SessionCommand.COMMAND_CODE_SESSION_PREPARE_FROM_URI, androidx.media2.session.SessionCommand.COMMAND_CODE_SESSION_SET_RATING, androidx.media2.session.SessionCommand.COMMAND_CODE_LIBRARY_GET_LIBRARY_ROOT, androidx.media2.session.SessionCommand.COMMAND_CODE_LIBRARY_SUBSCRIBE, androidx.media2.session.SessionCommand.COMMAND_CODE_LIBRARY_UNSUBSCRIBE, androidx.media2.session.SessionCommand.COMMAND_CODE_LIBRARY_GET_CHILDREN, androidx.media2.session.SessionCommand.COMMAND_CODE_LIBRARY_GET_ITEM, androidx.media2.session.SessionCommand.COMMAND_CODE_LIBRARY_SEARCH, androidx.media2.session.SessionCommand.COMMAND_CODE_LIBRARY_GET_SEARCH_RESULT}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface SessionCommand.CommandCode {
}
@IntDef({androidx.media2.session.SessionCommand.COMMAND_VERSION_1}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface SessionCommand.CommandVersion {
}
@androidx.versionedparcelable.VersionedParcelize public final class SessionCommandGroup implements androidx.versionedparcelable.VersionedParcelable {
ctor public SessionCommandGroup();
ctor public SessionCommandGroup(java.util.Collection<androidx.media2.session.SessionCommand!>?);
method public java.util.Set<androidx.media2.session.SessionCommand!> getCommands();
method public boolean hasCommand(androidx.media2.session.SessionCommand);
method public boolean hasCommand(@androidx.media2.session.SessionCommand.CommandCode int);
}
public static final class SessionCommandGroup.Builder {
ctor public SessionCommandGroup.Builder();
ctor public SessionCommandGroup.Builder(androidx.media2.session.SessionCommandGroup);
method public androidx.media2.session.SessionCommandGroup.Builder addAllPredefinedCommands(@androidx.media2.session.SessionCommand.CommandVersion int);
method public androidx.media2.session.SessionCommandGroup.Builder addCommand(androidx.media2.session.SessionCommand);
method public androidx.media2.session.SessionCommandGroup build();
method public androidx.media2.session.SessionCommandGroup.Builder removeCommand(androidx.media2.session.SessionCommand);
}
@androidx.versionedparcelable.VersionedParcelize public class SessionResult implements androidx.media2.common.BaseResult androidx.versionedparcelable.VersionedParcelable {
ctor public SessionResult(@androidx.media2.session.SessionResult.ResultCode int, android.os.Bundle?);
method public long getCompletionTime();
method public android.os.Bundle? getCustomCommandResult();
method public androidx.media2.common.MediaItem? getMediaItem();
method @androidx.media2.session.SessionResult.ResultCode public int getResultCode();
field public static final int RESULT_ERROR_SESSION_AUTHENTICATION_EXPIRED = -102; // 0xffffff9a
field public static final int RESULT_ERROR_SESSION_CONCURRENT_STREAM_LIMIT = -104; // 0xffffff98
field public static final int RESULT_ERROR_SESSION_DISCONNECTED = -100; // 0xffffff9c
field public static final int RESULT_ERROR_SESSION_NOT_AVAILABLE_IN_REGION = -106; // 0xffffff96
field public static final int RESULT_ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED = -105; // 0xffffff97
field public static final int RESULT_ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED = -103; // 0xffffff99
field public static final int RESULT_ERROR_SESSION_SETUP_REQUIRED = -108; // 0xffffff94
field public static final int RESULT_ERROR_SESSION_SKIP_LIMIT_REACHED = -107; // 0xffffff95
field public static final int RESULT_SUCCESS = 0; // 0x0
}
@IntDef(flag=false, value={androidx.media2.session.SessionResult.RESULT_SUCCESS, androidx.media2.common.BaseResult.RESULT_ERROR_UNKNOWN, androidx.media2.common.BaseResult.RESULT_ERROR_INVALID_STATE, androidx.media2.common.BaseResult.RESULT_ERROR_BAD_VALUE, androidx.media2.common.BaseResult.RESULT_ERROR_PERMISSION_DENIED, androidx.media2.common.BaseResult.RESULT_ERROR_IO, androidx.media2.common.BaseResult.RESULT_INFO_SKIPPED, androidx.media2.session.RemoteResult.RESULT_ERROR_SESSION_DISCONNECTED, androidx.media2.common.BaseResult.RESULT_ERROR_NOT_SUPPORTED, androidx.media2.session.RemoteResult.RESULT_ERROR_SESSION_AUTHENTICATION_EXPIRED, androidx.media2.session.RemoteResult.RESULT_ERROR_SESSION_PREMIUM_ACCOUNT_REQUIRED, androidx.media2.session.RemoteResult.RESULT_ERROR_SESSION_CONCURRENT_STREAM_LIMIT, androidx.media2.session.RemoteResult.RESULT_ERROR_SESSION_PARENTAL_CONTROL_RESTRICTED, androidx.media2.session.RemoteResult.RESULT_ERROR_SESSION_NOT_AVAILABLE_IN_REGION, androidx.media2.session.RemoteResult.RESULT_ERROR_SESSION_SKIP_LIMIT_REACHED, androidx.media2.session.RemoteResult.RESULT_ERROR_SESSION_SETUP_REQUIRED}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface SessionResult.ResultCode {
}
@androidx.versionedparcelable.VersionedParcelize public final class SessionToken implements androidx.versionedparcelable.VersionedParcelable {
ctor public SessionToken(android.content.Context, android.content.ComponentName);
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static void createSessionToken(android.content.Context, android.support.v4.media.session.MediaSessionCompat.Token, java.util.concurrent.Executor, androidx.media2.session.SessionToken.OnSessionTokenCreatedListener);
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public Object! getBinder();
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public android.content.ComponentName! getComponentName();
method public android.os.Bundle getExtras();
method public String getPackageName();
method public String? getServiceName();
method @androidx.media2.session.SessionToken.TokenType public int getType();
method public int getUid();
method @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public boolean isLegacySession();
field public static final int TYPE_LIBRARY_SERVICE = 2; // 0x2
field public static final int TYPE_SESSION = 0; // 0x0
field public static final int TYPE_SESSION_SERVICE = 1; // 0x1
}
@RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) public static interface SessionToken.OnSessionTokenCreatedListener {
method public void onSessionTokenCreated(android.support.v4.media.session.MediaSessionCompat.Token!, androidx.media2.session.SessionToken!);
}
@IntDef({androidx.media2.session.SessionToken.TYPE_SESSION, androidx.media2.session.SessionToken.TYPE_SESSION_SERVICE, androidx.media2.session.SessionToken.TYPE_LIBRARY_SERVICE}) @RestrictTo(androidx.annotation.RestrictTo.Scope.LIBRARY_GROUP_PREFIX) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface SessionToken.TokenType {
}
@androidx.versionedparcelable.VersionedParcelize public final class StarRating implements androidx.media2.common.Rating {
ctor public StarRating(@IntRange(from=1) int);
ctor public StarRating(@IntRange(from=1) int, float);
method public int getMaxStars();
method public float getStarRating();
method public boolean isRated();
}
@androidx.versionedparcelable.VersionedParcelize public final class ThumbRating implements androidx.media2.common.Rating {
ctor public ThumbRating();
ctor public ThumbRating(boolean);
method public boolean isRated();
method public boolean isThumbUp();
}
}