Loading api/current.txt +60 −0 Original line number Diff line number Diff line Loading @@ -24521,6 +24521,22 @@ package android.media { field public static final int REGULAR_CODECS = 0; // 0x0 } public class MediaController2 implements java.lang.AutoCloseable { ctor public MediaController2(android.content.Context, android.media.Session2Token); ctor public MediaController2(android.content.Context, android.media.Session2Token, java.util.concurrent.Executor, android.media.MediaController2.ControllerCallback); method public void cancelSessionCommand(java.lang.Object); method public void close(); method public java.lang.Object sendSessionCommand(android.media.Session2Command, android.os.Bundle); } public static abstract class MediaController2.ControllerCallback { ctor public MediaController2.ControllerCallback(); method public void onCommandResult(android.media.MediaController2, java.lang.Object, android.media.Session2Command, android.media.Session2Command.Result); method public void onConnected(android.media.MediaController2, android.media.Session2CommandGroup); method public void onDisconnected(android.media.MediaController2); method public android.media.Session2Command.Result onSessionCommand(android.media.MediaController2, android.media.Session2Command, android.os.Bundle); } public final class MediaCrypto { ctor public MediaCrypto(java.util.UUID, byte[]) throws android.media.MediaCryptoException; method protected void finalize(); Loading Loading @@ -25820,6 +25836,37 @@ package android.media { method public abstract void onScanCompleted(java.lang.String, android.net.Uri); } public class MediaSession2 implements java.lang.AutoCloseable { method public void broadcastSessionCommand(android.media.Session2Command, android.os.Bundle); method public void cancelSessionCommand(android.media.MediaSession2.ControllerInfo, java.lang.Object); method public void close(); method public java.lang.String getSessionId(); method public android.media.Session2Token getSessionToken(); method public java.lang.Object sendSessionCommand(android.media.MediaSession2.ControllerInfo, android.media.Session2Command, android.os.Bundle); } public static final class MediaSession2.Builder { ctor public MediaSession2.Builder(android.content.Context); method public android.media.MediaSession2 build(); method public android.media.MediaSession2.Builder setId(java.lang.String); method public android.media.MediaSession2.Builder setSessionActivity(android.app.PendingIntent); method public android.media.MediaSession2.Builder setSessionCallback(java.util.concurrent.Executor, android.media.MediaSession2.SessionCallback); } public static final class MediaSession2.ControllerInfo { method public java.lang.String getPackageName(); method public android.media.session.MediaSessionManager.RemoteUserInfo getRemoteUserInfo(); method public int getUid(); } public static abstract class MediaSession2.SessionCallback { ctor public MediaSession2.SessionCallback(); method public void onCommandResult(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo, java.lang.Object, android.media.Session2Command, android.media.Session2Command.Result); method public android.media.Session2CommandGroup onConnect(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo); method public void onDisconnected(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo); method public android.media.Session2Command.Result onSessionCommand(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo, android.media.Session2Command, android.os.Bundle); } public final class MediaSync { ctor public MediaSync(); method public android.view.Surface createInputSurface(); Loading Loading @@ -26133,6 +26180,19 @@ package android.media { method public android.media.Session2CommandGroup.Builder removeCommand(int); } public final class Session2Token implements android.os.Parcelable { ctor public Session2Token(android.content.Context, android.content.ComponentName); method public int describeContents(); method public java.lang.String getPackageName(); method public java.lang.String getServiceName(); method public int getType(); method public int getUid(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.media.Session2Token> CREATOR; field public static final int TYPE_SESSION = 0; // 0x0 field public static final int TYPE_SESSION_SERVICE = 1; // 0x1 } public class SoundPool { ctor public deprecated SoundPool(int, int, int); method public final void autoPause(); api/system-current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -1284,8 +1284,8 @@ package android.content { field public static final java.lang.String EXTRA_LONG_VERSION_CODE = "android.intent.extra.LONG_VERSION_CODE"; field public static final java.lang.String EXTRA_ORIGINATING_UID = "android.intent.extra.ORIGINATING_UID"; field public static final java.lang.String EXTRA_PACKAGES = "android.intent.extra.PACKAGES"; field public static final java.lang.String EXTRA_PERMISSION_NAME = "android.intent.extra.PERMISSION_NAME"; field public static final java.lang.String EXTRA_PERMISSION_GROUP_NAME = "android.intent.extra.PERMISSION_GROUP_NAME"; field public static final java.lang.String EXTRA_PERMISSION_NAME = "android.intent.extra.PERMISSION_NAME"; field public static final java.lang.String EXTRA_REASON = "android.intent.extra.REASON"; field public static final java.lang.String EXTRA_REMOTE_CALLBACK = "android.intent.extra.REMOTE_CALLBACK"; field public static final java.lang.String EXTRA_RESULT_NEEDED = "android.intent.extra.RESULT_NEEDED"; Loading media/java/android/media/MediaConstants.java +1 −1 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ class MediaConstants { static final String KEY_PACKAGE_NAME = "android.media.key.PACKAGE_NAME"; // Bundle key for Parcelable static final String KEY_SESSION2_STUB = "android.media.key.SESSION2_STUB"; static final String KEY_SESSION2LINK = "android.media.key.SESSION2LINK"; static final String KEY_ALLOWED_COMMANDS = "android.media.key.ALLOWED_COMMANDS"; private MediaConstants() { Loading media/java/android/media/MediaController2.java +7 −6 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ package android.media; import static android.media.MediaConstants.KEY_ALLOWED_COMMANDS; import static android.media.MediaConstants.KEY_PACKAGE_NAME; import static android.media.MediaConstants.KEY_PID; import static android.media.MediaConstants.KEY_SESSION2_STUB; import static android.media.MediaConstants.KEY_SESSION2LINK; import static android.media.Session2Command.RESULT_ERROR_UNKNOWN_ERROR; import static android.media.Session2Command.RESULT_INFO_SKIPPED; import static android.media.Session2Token.TYPE_SESSION; Loading @@ -41,15 +41,15 @@ import java.util.concurrent.Executor; /** * Allows an app to interact with an active {@link MediaSession2} or a * {@link MediaSession2Service} which would provide {@link MediaSession2}. Media buttons and other * MediaSession2Service which would provide {@link MediaSession2}. Media buttons and other * commands can be sent to the session. * <p> * This API is not generally intended for third party application developers. * 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: use @link for MediaSession2Service public class MediaController2 implements AutoCloseable { static final String TAG = "MediaController2"; static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); Loading Loading @@ -130,8 +130,8 @@ public class MediaController2 implements AutoCloseable { synchronized (mLock) { if (mSessionBinder != null) { try { mSessionBinder.unlinkToDeath(mDeathRecipient, 0); mSessionBinder.disconnect(mControllerStub, getNextSeqNumber()); mSessionBinder.unlinkToDeath(mDeathRecipient, 0); } catch (RuntimeException e) { // No-op } Loading @@ -153,6 +153,7 @@ public class MediaController2 implements AutoCloseable { * @return a token which will be sent together in {@link ControllerCallback#onCommandResult} * when its result is received. */ @NonNull public Object sendSessionCommand(@NonNull Session2Command command, @Nullable Bundle args) { if (command == null) { throw new IllegalArgumentException("command shouldn't be null"); Loading Loading @@ -208,7 +209,7 @@ public class MediaController2 implements AutoCloseable { void onConnected(int seq, Bundle connectionResult) { final long token = Binder.clearCallingIdentity(); try { Session2Link sessionBinder = connectionResult.getParcelable(KEY_SESSION2_STUB); Session2Link sessionBinder = connectionResult.getParcelable(KEY_SESSION2LINK); Session2CommandGroup allowedCommands = connectionResult.getParcelable(KEY_ALLOWED_COMMANDS); if (DEBUG) { Loading Loading @@ -349,7 +350,7 @@ public class MediaController2 implements AutoCloseable { * @return the result for the session command. A runtime exception will be thrown if null * is returned. */ @NonNull @Nullable public Session2Command.Result onSessionCommand(@NonNull MediaController2 controller, @NonNull Session2Command command, @Nullable Bundle args) { return null; Loading media/java/android/media/MediaSession2.java +12 −8 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ package android.media; import static android.media.MediaConstants.KEY_ALLOWED_COMMANDS; import static android.media.MediaConstants.KEY_PACKAGE_NAME; import static android.media.MediaConstants.KEY_PID; import static android.media.MediaConstants.KEY_SESSION2_STUB; import static android.media.MediaConstants.KEY_SESSION2LINK; import static android.media.Session2Command.RESULT_ERROR_UNKNOWN_ERROR; import static android.media.Session2Command.RESULT_INFO_SKIPPED; import static android.media.Session2Token.TYPE_SESSION; Loading Loading @@ -56,10 +56,9 @@ import java.util.concurrent.Executor; * 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 */ public class MediaSession2 implements AutoCloseable { static final String TAG = "MediaSession"; static final String TAG = "MediaSession2"; static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); // Note: This checks the uniqueness of a session ID only in a single process. Loading Loading @@ -89,7 +88,6 @@ public class MediaSession2 implements AutoCloseable { private final Handler mResultHandler; //@GuardedBy("mLock") @SuppressWarnings("WeakerAccess") /* synthetic access */ private boolean mClosed; MediaSession2(@NonNull Context context, @NonNull String id, PendingIntent sessionActivity, Loading @@ -113,6 +111,7 @@ public class MediaSession2 implements AutoCloseable { Context.MEDIA_SESSION_SERVICE); // NOTE: mResultHandler uses main looper, so this MUST NOT be blocked. mResultHandler = new Handler(context.getMainLooper()); mClosed = false; } @Override Loading Loading @@ -179,6 +178,7 @@ public class MediaSession2 implements AutoCloseable { * @return a token which will be sent together in {@link SessionCallback#onCommandResult} * when its result is received. */ @NonNull public Object sendSessionCommand(@NonNull ControllerInfo controller, @NonNull Session2Command command, @Nullable Bundle args) { if (controller == null) { Loading Loading @@ -206,7 +206,10 @@ public class MediaSession2 implements AutoCloseable { * @param controller the controller to get the session command * @param token the token which is returned from {@link #sendSessionCommand}. */ public void cancelSessionCommand(ControllerInfo controller, Object token) { public void cancelSessionCommand(@NonNull ControllerInfo controller, @NonNull Object token) { if (controller == null) { throw new IllegalArgumentException("controller shouldn't be null"); } if (token == null) { throw new IllegalArgumentException("token shouldn't be null"); } Loading Loading @@ -267,7 +270,7 @@ public class MediaSession2 implements AutoCloseable { // It's needed because we cannot call synchronous calls between // session/controller. Bundle connectionResult = new Bundle(); connectionResult.putParcelable(KEY_SESSION2_STUB, mSessionStub); connectionResult.putParcelable(KEY_SESSION2LINK, mSessionStub); connectionResult.putParcelable(KEY_ALLOWED_COMMANDS, controllerInfo.mAllowedCommands); Loading Loading @@ -558,7 +561,7 @@ public class MediaSession2 implements AutoCloseable { } @Override public boolean equals(Object obj) { public boolean equals(@Nullable Object obj) { if (!(obj instanceof ControllerInfo)) return false; if (this == obj) return true; Loading @@ -570,6 +573,7 @@ public class MediaSession2 implements AutoCloseable { } @Override @NonNull public String toString() { return "ControllerInfo {pkg=" + mRemoteUserInfo.getPackageName() + ", uid=" + mRemoteUserInfo.getUid() + ", allowedCommands=" + mAllowedCommands + "})"; Loading Loading @@ -693,7 +697,7 @@ public class MediaSession2 implements AutoCloseable { * @return the result for the session command. A runtime exception will be thrown if null * is returned. */ @NonNull @Nullable public Session2Command.Result onSessionCommand(@NonNull MediaSession2 session, @NonNull ControllerInfo controller, @NonNull Session2Command command, @Nullable Bundle args) { Loading Loading
api/current.txt +60 −0 Original line number Diff line number Diff line Loading @@ -24521,6 +24521,22 @@ package android.media { field public static final int REGULAR_CODECS = 0; // 0x0 } public class MediaController2 implements java.lang.AutoCloseable { ctor public MediaController2(android.content.Context, android.media.Session2Token); ctor public MediaController2(android.content.Context, android.media.Session2Token, java.util.concurrent.Executor, android.media.MediaController2.ControllerCallback); method public void cancelSessionCommand(java.lang.Object); method public void close(); method public java.lang.Object sendSessionCommand(android.media.Session2Command, android.os.Bundle); } public static abstract class MediaController2.ControllerCallback { ctor public MediaController2.ControllerCallback(); method public void onCommandResult(android.media.MediaController2, java.lang.Object, android.media.Session2Command, android.media.Session2Command.Result); method public void onConnected(android.media.MediaController2, android.media.Session2CommandGroup); method public void onDisconnected(android.media.MediaController2); method public android.media.Session2Command.Result onSessionCommand(android.media.MediaController2, android.media.Session2Command, android.os.Bundle); } public final class MediaCrypto { ctor public MediaCrypto(java.util.UUID, byte[]) throws android.media.MediaCryptoException; method protected void finalize(); Loading Loading @@ -25820,6 +25836,37 @@ package android.media { method public abstract void onScanCompleted(java.lang.String, android.net.Uri); } public class MediaSession2 implements java.lang.AutoCloseable { method public void broadcastSessionCommand(android.media.Session2Command, android.os.Bundle); method public void cancelSessionCommand(android.media.MediaSession2.ControllerInfo, java.lang.Object); method public void close(); method public java.lang.String getSessionId(); method public android.media.Session2Token getSessionToken(); method public java.lang.Object sendSessionCommand(android.media.MediaSession2.ControllerInfo, android.media.Session2Command, android.os.Bundle); } public static final class MediaSession2.Builder { ctor public MediaSession2.Builder(android.content.Context); method public android.media.MediaSession2 build(); method public android.media.MediaSession2.Builder setId(java.lang.String); method public android.media.MediaSession2.Builder setSessionActivity(android.app.PendingIntent); method public android.media.MediaSession2.Builder setSessionCallback(java.util.concurrent.Executor, android.media.MediaSession2.SessionCallback); } public static final class MediaSession2.ControllerInfo { method public java.lang.String getPackageName(); method public android.media.session.MediaSessionManager.RemoteUserInfo getRemoteUserInfo(); method public int getUid(); } public static abstract class MediaSession2.SessionCallback { ctor public MediaSession2.SessionCallback(); method public void onCommandResult(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo, java.lang.Object, android.media.Session2Command, android.media.Session2Command.Result); method public android.media.Session2CommandGroup onConnect(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo); method public void onDisconnected(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo); method public android.media.Session2Command.Result onSessionCommand(android.media.MediaSession2, android.media.MediaSession2.ControllerInfo, android.media.Session2Command, android.os.Bundle); } public final class MediaSync { ctor public MediaSync(); method public android.view.Surface createInputSurface(); Loading Loading @@ -26133,6 +26180,19 @@ package android.media { method public android.media.Session2CommandGroup.Builder removeCommand(int); } public final class Session2Token implements android.os.Parcelable { ctor public Session2Token(android.content.Context, android.content.ComponentName); method public int describeContents(); method public java.lang.String getPackageName(); method public java.lang.String getServiceName(); method public int getType(); method public int getUid(); method public void writeToParcel(android.os.Parcel, int); field public static final android.os.Parcelable.Creator<android.media.Session2Token> CREATOR; field public static final int TYPE_SESSION = 0; // 0x0 field public static final int TYPE_SESSION_SERVICE = 1; // 0x1 } public class SoundPool { ctor public deprecated SoundPool(int, int, int); method public final void autoPause();
api/system-current.txt +1 −1 Original line number Diff line number Diff line Loading @@ -1284,8 +1284,8 @@ package android.content { field public static final java.lang.String EXTRA_LONG_VERSION_CODE = "android.intent.extra.LONG_VERSION_CODE"; field public static final java.lang.String EXTRA_ORIGINATING_UID = "android.intent.extra.ORIGINATING_UID"; field public static final java.lang.String EXTRA_PACKAGES = "android.intent.extra.PACKAGES"; field public static final java.lang.String EXTRA_PERMISSION_NAME = "android.intent.extra.PERMISSION_NAME"; field public static final java.lang.String EXTRA_PERMISSION_GROUP_NAME = "android.intent.extra.PERMISSION_GROUP_NAME"; field public static final java.lang.String EXTRA_PERMISSION_NAME = "android.intent.extra.PERMISSION_NAME"; field public static final java.lang.String EXTRA_REASON = "android.intent.extra.REASON"; field public static final java.lang.String EXTRA_REMOTE_CALLBACK = "android.intent.extra.REMOTE_CALLBACK"; field public static final java.lang.String EXTRA_RESULT_NEEDED = "android.intent.extra.RESULT_NEEDED"; Loading
media/java/android/media/MediaConstants.java +1 −1 Original line number Diff line number Diff line Loading @@ -24,7 +24,7 @@ class MediaConstants { static final String KEY_PACKAGE_NAME = "android.media.key.PACKAGE_NAME"; // Bundle key for Parcelable static final String KEY_SESSION2_STUB = "android.media.key.SESSION2_STUB"; static final String KEY_SESSION2LINK = "android.media.key.SESSION2LINK"; static final String KEY_ALLOWED_COMMANDS = "android.media.key.ALLOWED_COMMANDS"; private MediaConstants() { Loading
media/java/android/media/MediaController2.java +7 −6 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ package android.media; import static android.media.MediaConstants.KEY_ALLOWED_COMMANDS; import static android.media.MediaConstants.KEY_PACKAGE_NAME; import static android.media.MediaConstants.KEY_PID; import static android.media.MediaConstants.KEY_SESSION2_STUB; import static android.media.MediaConstants.KEY_SESSION2LINK; import static android.media.Session2Command.RESULT_ERROR_UNKNOWN_ERROR; import static android.media.Session2Command.RESULT_INFO_SKIPPED; import static android.media.Session2Token.TYPE_SESSION; Loading @@ -41,15 +41,15 @@ import java.util.concurrent.Executor; /** * Allows an app to interact with an active {@link MediaSession2} or a * {@link MediaSession2Service} which would provide {@link MediaSession2}. Media buttons and other * MediaSession2Service which would provide {@link MediaSession2}. Media buttons and other * commands can be sent to the session. * <p> * This API is not generally intended for third party application developers. * 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: use @link for MediaSession2Service public class MediaController2 implements AutoCloseable { static final String TAG = "MediaController2"; static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); Loading Loading @@ -130,8 +130,8 @@ public class MediaController2 implements AutoCloseable { synchronized (mLock) { if (mSessionBinder != null) { try { mSessionBinder.unlinkToDeath(mDeathRecipient, 0); mSessionBinder.disconnect(mControllerStub, getNextSeqNumber()); mSessionBinder.unlinkToDeath(mDeathRecipient, 0); } catch (RuntimeException e) { // No-op } Loading @@ -153,6 +153,7 @@ public class MediaController2 implements AutoCloseable { * @return a token which will be sent together in {@link ControllerCallback#onCommandResult} * when its result is received. */ @NonNull public Object sendSessionCommand(@NonNull Session2Command command, @Nullable Bundle args) { if (command == null) { throw new IllegalArgumentException("command shouldn't be null"); Loading Loading @@ -208,7 +209,7 @@ public class MediaController2 implements AutoCloseable { void onConnected(int seq, Bundle connectionResult) { final long token = Binder.clearCallingIdentity(); try { Session2Link sessionBinder = connectionResult.getParcelable(KEY_SESSION2_STUB); Session2Link sessionBinder = connectionResult.getParcelable(KEY_SESSION2LINK); Session2CommandGroup allowedCommands = connectionResult.getParcelable(KEY_ALLOWED_COMMANDS); if (DEBUG) { Loading Loading @@ -349,7 +350,7 @@ public class MediaController2 implements AutoCloseable { * @return the result for the session command. A runtime exception will be thrown if null * is returned. */ @NonNull @Nullable public Session2Command.Result onSessionCommand(@NonNull MediaController2 controller, @NonNull Session2Command command, @Nullable Bundle args) { return null; Loading
media/java/android/media/MediaSession2.java +12 −8 Original line number Diff line number Diff line Loading @@ -19,7 +19,7 @@ package android.media; import static android.media.MediaConstants.KEY_ALLOWED_COMMANDS; import static android.media.MediaConstants.KEY_PACKAGE_NAME; import static android.media.MediaConstants.KEY_PID; import static android.media.MediaConstants.KEY_SESSION2_STUB; import static android.media.MediaConstants.KEY_SESSION2LINK; import static android.media.Session2Command.RESULT_ERROR_UNKNOWN_ERROR; import static android.media.Session2Command.RESULT_INFO_SKIPPED; import static android.media.Session2Token.TYPE_SESSION; Loading Loading @@ -56,10 +56,9 @@ import java.util.concurrent.Executor; * 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 */ public class MediaSession2 implements AutoCloseable { static final String TAG = "MediaSession"; static final String TAG = "MediaSession2"; static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG); // Note: This checks the uniqueness of a session ID only in a single process. Loading Loading @@ -89,7 +88,6 @@ public class MediaSession2 implements AutoCloseable { private final Handler mResultHandler; //@GuardedBy("mLock") @SuppressWarnings("WeakerAccess") /* synthetic access */ private boolean mClosed; MediaSession2(@NonNull Context context, @NonNull String id, PendingIntent sessionActivity, Loading @@ -113,6 +111,7 @@ public class MediaSession2 implements AutoCloseable { Context.MEDIA_SESSION_SERVICE); // NOTE: mResultHandler uses main looper, so this MUST NOT be blocked. mResultHandler = new Handler(context.getMainLooper()); mClosed = false; } @Override Loading Loading @@ -179,6 +178,7 @@ public class MediaSession2 implements AutoCloseable { * @return a token which will be sent together in {@link SessionCallback#onCommandResult} * when its result is received. */ @NonNull public Object sendSessionCommand(@NonNull ControllerInfo controller, @NonNull Session2Command command, @Nullable Bundle args) { if (controller == null) { Loading Loading @@ -206,7 +206,10 @@ public class MediaSession2 implements AutoCloseable { * @param controller the controller to get the session command * @param token the token which is returned from {@link #sendSessionCommand}. */ public void cancelSessionCommand(ControllerInfo controller, Object token) { public void cancelSessionCommand(@NonNull ControllerInfo controller, @NonNull Object token) { if (controller == null) { throw new IllegalArgumentException("controller shouldn't be null"); } if (token == null) { throw new IllegalArgumentException("token shouldn't be null"); } Loading Loading @@ -267,7 +270,7 @@ public class MediaSession2 implements AutoCloseable { // It's needed because we cannot call synchronous calls between // session/controller. Bundle connectionResult = new Bundle(); connectionResult.putParcelable(KEY_SESSION2_STUB, mSessionStub); connectionResult.putParcelable(KEY_SESSION2LINK, mSessionStub); connectionResult.putParcelable(KEY_ALLOWED_COMMANDS, controllerInfo.mAllowedCommands); Loading Loading @@ -558,7 +561,7 @@ public class MediaSession2 implements AutoCloseable { } @Override public boolean equals(Object obj) { public boolean equals(@Nullable Object obj) { if (!(obj instanceof ControllerInfo)) return false; if (this == obj) return true; Loading @@ -570,6 +573,7 @@ public class MediaSession2 implements AutoCloseable { } @Override @NonNull public String toString() { return "ControllerInfo {pkg=" + mRemoteUserInfo.getPackageName() + ", uid=" + mRemoteUserInfo.getUid() + ", allowedCommands=" + mAllowedCommands + "})"; Loading Loading @@ -693,7 +697,7 @@ public class MediaSession2 implements AutoCloseable { * @return the result for the session command. A runtime exception will be thrown if null * is returned. */ @NonNull @Nullable public Session2Command.Result onSessionCommand(@NonNull MediaSession2 session, @NonNull ControllerInfo controller, @NonNull Session2Command command, @Nullable Bundle args) { Loading