Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 471530dd authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Remove MediaController2 usages in MediaSessionServiceImpl"

parents d8cf9da7 c1e4316e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -25948,7 +25948,6 @@ package android.media {
    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 {
@@ -27471,6 +27470,7 @@ package android.media.session {
    method @NonNull public java.util.List<android.media.Session2Token> getSession2Tokens();
    method public boolean isTrustedForMediaControl(@NonNull android.media.session.MediaSessionManager.RemoteUserInfo);
    method public void notifySession2Created(@NonNull android.media.Session2Token);
    method public void notifySession2Destroyed(@NonNull android.media.Session2Token);
    method public void removeOnActiveSessionsChangedListener(@NonNull android.media.session.MediaSessionManager.OnActiveSessionsChangedListener);
    method public void removeOnSession2TokensChangedListener(@NonNull android.media.session.MediaSessionManager.OnSession2TokensChangedListener);
  }
+9 −0
Original line number Diff line number Diff line
@@ -3414,6 +3414,15 @@ package android.media {
    method public void stop();
  }
  public final class Session2Token implements android.os.Parcelable {
    ctor public Session2Token(@NonNull android.content.Context, @NonNull String, @Nullable android.os.Bundle);
    method public void destroy();
    method @NonNull public android.os.Bundle getExtras();
    method public int getPid();
    method public boolean isDestroyed();
    field public static final String SESSION_SERVICE_INTERFACE = "android.media.MediaSession2Service";
  }
  public static class SubtitleData.Builder {
    ctor public SubtitleData.Builder();
    ctor public SubtitleData.Builder(@NonNull android.media.SubtitleData);
+0 −1
Original line number Diff line number Diff line
@@ -132,7 +132,6 @@ filegroup {
        "apex/java/android/media/Session2Command.java",
        "apex/java/android/media/Session2CommandGroup.java",
        "apex/java/android/media/Session2Link.java",
        "apex/java/android/media/Session2Token.java",
    ],
}

+2 −1
Original line number Diff line number Diff line
@@ -24,7 +24,8 @@ class MediaConstants {
    static final String KEY_PACKAGE_NAME = "android.media.key.PACKAGE_NAME";

    // Bundle key for Parcelable
    static final String KEY_SESSION2LINK = "android.media.key.SESSION2LINK";
    static final String KEY_SESSION2_TOKEN = "android.media.key.SESSION2_TOKEN";
    static final String KEY_SESSION2_LINK = "android.media.key.SESSION2_LINK";
    static final String KEY_ALLOWED_COMMANDS = "android.media.key.ALLOWED_COMMANDS";
    static final String KEY_PLAYBACK_ACTIVE = "android.media.key.PLAYBACK_ACTIVE";

+8 −6
Original line number Diff line number Diff line
@@ -20,9 +20,11 @@ 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_PLAYBACK_ACTIVE;
import static android.media.MediaConstants.KEY_SESSION2LINK;
import static android.media.MediaConstants.KEY_SESSION2_LINK;
import static android.media.MediaConstants.KEY_SESSION2_TOKEN;
import static android.media.Session2Command.RESULT_ERROR_UNKNOWN_ERROR;
import static android.media.Session2Command.RESULT_INFO_SKIPPED;
import static android.media.Session2Token.SESSION_SERVICE_INTERFACE;
import static android.media.Session2Token.TYPE_SESSION;

import android.annotation.NonNull;
@@ -260,7 +262,8 @@ public class MediaController2 implements AutoCloseable {

    // Called by Controller2Link.onConnected
    void onConnected(int seq, Bundle connectionResult) {
        Session2Link sessionBinder = connectionResult.getParcelable(KEY_SESSION2LINK);
        Session2Token token = connectionResult.getParcelable(KEY_SESSION2_TOKEN);
        Session2Link sessionBinder = token.getExtras().getParcelable(KEY_SESSION2_LINK);
        Session2CommandGroup allowedCommands =
                connectionResult.getParcelable(KEY_ALLOWED_COMMANDS);
        boolean playbackActive = connectionResult.getBoolean(KEY_PLAYBACK_ACTIVE);
@@ -281,8 +284,7 @@ public class MediaController2 implements AutoCloseable {
            // Implementation for the local binder is no-op,
            // so can be used without worrying about deadlock.
            sessionBinder.linkToDeath(mDeathRecipient, 0);
            mConnectedToken = new Session2Token(mSessionToken.getUid(), TYPE_SESSION,
                    mSessionToken.getPackageName(), sessionBinder);
            mConnectedToken = token;
        }
        mCallbackExecutor.execute(() -> {
            mCallback.onConnected(MediaController2.this, allowedCommands);
@@ -353,7 +355,7 @@ public class MediaController2 implements AutoCloseable {
    }

    private boolean requestConnectToSession() {
        Session2Link sessionBinder = mSessionToken.getSessionLink();
        Session2Link sessionBinder = mSessionToken.getExtras().getParcelable(KEY_SESSION2_LINK);
        Bundle connectionRequest = createConnectionRequest();
        try {
            sessionBinder.connect(mControllerStub, getNextSeqNumber(), connectionRequest);
@@ -366,7 +368,7 @@ public class MediaController2 implements AutoCloseable {

    private boolean requestConnectToService() {
        // Service. Needs to get fresh binder whenever connection is needed.
        final Intent intent = new Intent(MediaSession2Service.SERVICE_INTERFACE);
        final Intent intent = new Intent(SESSION_SERVICE_INTERFACE);
        intent.setClassName(mSessionToken.getPackageName(), mSessionToken.getServiceName());

        // Use bindService() instead of startForegroundService() to start session service for three
Loading