Loading api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -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(); media/apex/java/android/media/MediaSession2.java +21 −15 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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. Loading @@ -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) { Loading Loading @@ -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> Loading Loading
api/current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -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();
media/apex/java/android/media/MediaSession2.java +21 −15 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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. Loading @@ -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) { Loading Loading @@ -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> Loading