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

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

Merge changes I6bda318c,Ie4d259dc

* changes:
  MediaController: Remove unused constructors
  Make ISessionManager.getSessions() return list of tokens
parents 05cc3aa9 91390281
Loading
Loading
Loading
Loading
+14 −30
Original line number Diff line number Diff line
@@ -81,35 +81,6 @@ public final class MediaController {

    private final TransportControls mTransportControls;

    /**
     * Call for creating a MediaController directly from a controller link. Should only
     * be used by framework code.
     * @hide
     */
    public MediaController(Context context, ControllerLink sessionBinder) {
        if (sessionBinder == null) {
            throw new IllegalArgumentException("Session token cannot be null");
        }
        if (context == null) {
            throw new IllegalArgumentException("Context cannot be null");
        }
        mSessionBinder = sessionBinder;
        mTransportControls = new TransportControls();
        mToken = new MediaSession.Token(sessionBinder);
        mContext = context;
        mCbStub = new ControllerCallbackLink(context, new CallbackStub(this));
    }

    /**
     * Call for creating a MediaController directly from a binder. Should only
     * be used by framework code.
     * @hide
     * TODO: remove this constructor
     */
    public MediaController(Context context, ISessionController sessionBinder) {
        this(context, new ControllerLink(sessionBinder.asBinder()));
    }

    /**
     * Create a new MediaController from a session's token.
     *
@@ -117,7 +88,20 @@ public final class MediaController {
     * @param token The token for the session.
     */
    public MediaController(@NonNull Context context, @NonNull MediaSession.Token token) {
        this(context, token.getControllerLink());
        if (context == null) {
            throw new IllegalArgumentException("context shouldn't be null");
        }
        if (token == null) {
            throw new IllegalArgumentException("token shouldn't be null");
        }
        if (token.getControllerLink() == null) {
            throw new IllegalArgumentException("token.getControllerLink() shouldn't be null");
        }
        mSessionBinder = token.getControllerLink();
        mTransportControls = new TransportControls();
        mToken = token;
        mContext = context;
        mCbStub = new ControllerCallbackLink(context, new CallbackStub(this));
    }

    /**
+2 −2
Original line number Diff line number Diff line
@@ -18,12 +18,12 @@ package android.media.session;
import android.content.ComponentName;
import android.media.IRemoteVolumeController;
import android.media.Session2Token;
import android.media.session.ControllerLink;
import android.media.session.IActiveSessionsListener;
import android.media.session.ICallback;
import android.media.session.IOnMediaKeyListener;
import android.media.session.IOnVolumeKeyLongPressListener;
import android.media.session.ISession2TokensListener;
import android.media.session.MediaSession;
import android.media.session.SessionCallbackLink;
import android.media.session.SessionLink;
import android.os.Bundle;
@@ -38,7 +38,7 @@ interface ISessionManager {
            int userId);
    void notifySession2Created(in Session2Token sessionToken);
    void notifySession2Destroyed(in Session2Token sessionToken);
    List<ControllerLink> getSessions(in ComponentName compName, int userId);
    List<MediaSession.Token> getSessions(in ComponentName compName, int userId);
    List<Session2Token> getSession2Tokens(int userId);
    void dispatchMediaKeyEvent(String packageName, boolean asSystemService, in KeyEvent keyEvent,
            boolean needWakeLock);
+3 −3
Original line number Diff line number Diff line
@@ -202,10 +202,10 @@ public final class MediaSessionManager {
            @Nullable ComponentName notificationListener, int userId) {
        ArrayList<MediaController> controllers = new ArrayList<MediaController>();
        try {
            List<ControllerLink> binders = mService.getSessions(notificationListener, userId);
            int size = binders.size();
            List<MediaSession.Token> tokens = mService.getSessions(notificationListener, userId);
            int size = tokens.size();
            for (int i = 0; i < size; i++) {
                MediaController controller = new MediaController(mContext, binders.get(i));
                MediaController controller = new MediaController(mContext, tokens.get(i));
                controllers.add(controller);
            }
        } catch (RemoteException e) {
+4 −5
Original line number Diff line number Diff line
@@ -43,7 +43,6 @@ import android.media.AudioSystem;
import android.media.IAudioService;
import android.media.IRemoteVolumeController;
import android.media.Session2Token;
import android.media.session.ControllerLink;
import android.media.session.IActiveSessionsListener;
import android.media.session.ICallback;
import android.media.session.IOnMediaKeyListener;
@@ -1054,21 +1053,21 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl {
        }

        @Override
        public List<ControllerLink> getSessions(ComponentName componentName, int userId) {
        public List<MediaSession.Token> getSessions(ComponentName componentName, int userId) {
            final int pid = Binder.getCallingPid();
            final int uid = Binder.getCallingUid();
            final long token = Binder.clearCallingIdentity();

            try {
                int resolvedUserId = verifySessionsRequest(componentName, userId, pid, uid);
                ArrayList<ControllerLink> binders = new ArrayList<>();
                ArrayList<MediaSession.Token> tokens = new ArrayList<>();
                synchronized (mLock) {
                    List<MediaSessionRecord> records = getActiveSessionsLocked(resolvedUserId);
                    for (MediaSessionRecord record : records) {
                        binders.add(record.getControllerLink());
                        tokens.add(record.getSessionToken());
                    }
                }
                return binders;
                return tokens;
            } finally {
                Binder.restoreCallingIdentity(token);
            }