diff options
| author | 2019-02-15 14:52:29 +0900 | |
|---|---|---|
| committer | 2019-02-15 14:52:29 +0900 | |
| commit | 1d20148e8adce031c43736eccd4fefed301f66ec (patch) | |
| tree | 206b213f473133314745be1c1689eca5e732caf7 | |
| parent | 5c56c9e696f5dedfcf716c4330aa8c3abfd03668 (diff) | |
MediaSession2: Make getConnectedControllers() public
Bug: 124478505
Test: Build
Change-Id: Iee132fca34ccdf89b263a74d727c5bcc5e75d196
| -rw-r--r-- | api/current.txt | 1 | ||||
| -rw-r--r-- | media/apex/java/android/media/MediaSession2.java | 36 |
2 files changed, 22 insertions, 15 deletions
diff --git a/api/current.txt b/api/current.txt index 15c4fdfed178..67952dda10a7 100644 --- a/api/current.txt +++ b/api/current.txt @@ -26000,6 +26000,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(); diff --git a/media/apex/java/android/media/MediaSession2.java b/media/apex/java/android/media/MediaSession2.java index fdd07fdd52e3..1f8400a7ef66 100644 --- a/media/apex/java/android/media/MediaSession2.java +++ b/media/apex/java/android/media/MediaSession2.java @@ -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> |