diff options
| -rw-r--r-- | api/current.txt | 17 | ||||
| -rw-r--r-- | media/java/android/media/MediaController2.java | 2 | ||||
| -rw-r--r-- | media/java/android/media/MediaSession2Service.java | 9 | ||||
| -rw-r--r-- | media/java/android/media/Session2Token.java | 13 |
4 files changed, 21 insertions, 20 deletions
diff --git a/api/current.txt b/api/current.txt index 96508c78dd88..edb64eac2de2 100644 --- a/api/current.txt +++ b/api/current.txt @@ -25915,6 +25915,23 @@ package android.media { method @Nullable public android.media.Session2Command.Result onSessionCommand(@NonNull android.media.MediaSession2, @NonNull android.media.MediaSession2.ControllerInfo, @NonNull android.media.Session2Command, @Nullable android.os.Bundle); } + public abstract class MediaSession2Service extends android.app.Service { + ctor public MediaSession2Service(); + method public final void addSession(@NonNull android.media.MediaSession2); + method @NonNull public final java.util.List<android.media.MediaSession2> getSessions(); + method @CallSuper @Nullable public android.os.IBinder onBind(@NonNull android.content.Intent); + method @NonNull public abstract android.media.MediaSession2 onGetPrimarySession(); + method @Nullable public abstract android.media.MediaSession2Service.MediaNotification onUpdateNotification(@NonNull android.media.MediaSession2); + method public final void removeSession(@NonNull android.media.MediaSession2); + field public static final String SERVICE_INTERFACE = "android.media.MediaSession2Service"; + } + + public static class MediaSession2Service.MediaNotification { + ctor public MediaSession2Service.MediaNotification(int, @NonNull android.app.Notification); + method @NonNull public android.app.Notification getNotification(); + method public int getNotificationId(); + } + public final class MediaSync { ctor public MediaSync(); method @NonNull public android.view.Surface createInputSurface(); diff --git a/media/java/android/media/MediaController2.java b/media/java/android/media/MediaController2.java index 039f3601cc3d..814bc72a2a78 100644 --- a/media/java/android/media/MediaController2.java +++ b/media/java/android/media/MediaController2.java @@ -176,7 +176,7 @@ public class MediaController2 implements AutoCloseable { * If it is not connected yet, it returns {@code null}. * <p> * This may differ with the {@link Session2Token} from the constructor. For example, if the - * controller is created with the token for MediaSession2Service, this would return + * controller is created with the token for {@link MediaSession2Service}, this would return * token for the {@link MediaSession2} in the service. * * @return Session2Token of the connected session, or {@code null} if not connected diff --git a/media/java/android/media/MediaSession2Service.java b/media/java/android/media/MediaSession2Service.java index a29b83dc2a09..5bb746a7f9e3 100644 --- a/media/java/android/media/MediaSession2Service.java +++ b/media/java/android/media/MediaSession2Service.java @@ -43,9 +43,7 @@ import java.util.Map; * Use the <a href="{@docRoot}jetpack/androidx.html">AndroidX</a> * <a href="{@docRoot}reference/androidx/media2/package-summary.html">Media2 Library</a> * for consistent behavior across all devices. - * @hide */ -// TODO: Unhide public abstract class MediaSession2Service extends Service { /** * The {@link Intent} that must be declared as handled by the service. @@ -110,13 +108,6 @@ public abstract class MediaSession2Service extends Service { return null; } - @CallSuper - @Override - public int onStartCommand(Intent intent, int flags, int startId) { - // TODO: Dispatch media key events to the primary session. - return START_STICKY; - } - /** * Called by the system to notify that it is no longer used and is being removed. Do not call * this method directly. diff --git a/media/java/android/media/Session2Token.java b/media/java/android/media/Session2Token.java index d8f74c518bf4..023ee4659b6c 100644 --- a/media/java/android/media/Session2Token.java +++ b/media/java/android/media/Session2Token.java @@ -48,14 +48,6 @@ import java.util.Objects; * <p> * It can be also obtained by {@link android.media.session.MediaSessionManager}. */ -// New version of MediaSession2.Token for following reasons -// - Stop implementing Parcelable for updatable support -// - Represent session and library service (formerly browser service) in one class. -// Previously MediaSession2.Token was for session and ComponentName was for service. -// This helps controller apps to keep target of dispatching media key events in uniform way. -// For details about the reason, see following. (Android O+) -// android.media.session.MediaSessionManager.Callback#onAddressedPlayerChanged -// TODO: use @link for MediaSession2Service public final class Session2Token implements Parcelable { private static final String TAG = "Session2Token"; @@ -85,12 +77,13 @@ public final class Session2Token implements Parcelable { public static final int TYPE_SESSION = 0; /** - * Type for MediaSession2Service. + * Type for {@link MediaSession2Service}. */ public static final int TYPE_SESSION_SERVICE = 1; private final int mUid; - private final @TokenType int mType; + @TokenType + private final int mType; private final String mPackageName; private final String mServiceName; private final Session2Link mSessionLink; |