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

Commit 817f5f85 authored by Hyundo Moon's avatar Hyundo Moon Committed by Jaewan Kim
Browse files

Make ISessionManager.getSessions() return list of tokens

This CL changes the return type of ISessionManager.getSessions()
from List<ControllerLink> to List<MediaSession.Token>.

Bug: 123488663
Test: Ran below tests
atest CtsMediaTestCases:android.media.cts.MediaSessionTest;
atest CtsMediaTestCases:android.media.cts.MediaControllerTest;
atest CtsMediaTestCases:android.media.cts.MediaSessionManagerTest;
Change-Id: Ie4d259dc3691977451c7751ae06816d67079a3f4
parent 908e048d
Loading
Loading
Loading
Loading
+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);
            }