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

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

Merge "MediaSession2: Make getConnectedControllers() public"

parents 45ef6275 1d20148e
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -26008,6 +26008,7 @@ package android.media {
    method public void broadcastSessionCommand(@NonNull android.media.Session2Command, @Nullable android.os.Bundle);
    method public void cancelSessionCommand(@NonNull android.media.MediaSession2.ControllerInfo, @NonNull Object);
    method public void close();
    method @NonNull public java.util.List<android.media.MediaSession2.ControllerInfo> getConnectedControllers();
    method @NonNull public String getSessionId();
    method @NonNull public android.media.Session2Token getSessionToken();
    method public boolean isPlaybackActive();
+21 −15
Original line number Diff line number Diff line
@@ -259,6 +259,20 @@ public class MediaSession2 implements AutoCloseable {
        }
    }

    /**
     * Gets the list of the connected controllers
     *
     * @return list of the connected controllers.
     */
    @NonNull
    public List<ControllerInfo> getConnectedControllers() {
        List<ControllerInfo> controllers = new ArrayList<>();
        synchronized (mLock) {
            controllers.addAll(mConnectedControllers.values());
        }
        return controllers;
    }

    boolean isClosed() {
        synchronized (mLock) {
            return mClosed;
@@ -317,13 +331,6 @@ public class MediaSession2 implements AutoCloseable {
                if (DEBUG) {
                    Log.d(TAG, "Accepting connection: " + controllerInfo);
                }
                synchronized (mLock) {
                    if (mConnectedControllers.containsKey(controller)) {
                        Log.w(TAG, "Controller " + controllerInfo + " has sent connection"
                                + " request multiple times");
                    }
                    mConnectedControllers.put(controller, controllerInfo);
                }
                // If connection is accepted, notify the current state to the controller.
                // It's needed because we cannot call synchronous calls between
                // session/controller.
@@ -339,6 +346,13 @@ public class MediaSession2 implements AutoCloseable {
                    return;
                }
                controllerInfo.notifyConnected(connectionResult);
                synchronized (mLock) {
                    if (mConnectedControllers.containsKey(controller)) {
                        Log.w(TAG, "Controller " + controllerInfo + " has sent connection"
                                + " request multiple times");
                    }
                    mConnectedControllers.put(controller, controllerInfo);
                }
                connected = true;
            } finally {
                if (!connected) {
@@ -417,14 +431,6 @@ public class MediaSession2 implements AutoCloseable {
        controllerInfo.removeRequestedCommandSeqNumber(seq);
    }

    private List<ControllerInfo> getConnectedControllers() {
        List<ControllerInfo> controllers = new ArrayList<>();
        synchronized (mLock) {
            controllers.addAll(mConnectedControllers.values());
        }
        return controllers;
    }

    /**
     * Builder for {@link MediaSession2}.
     * <p>