diff options
| author | 2019-02-18 04:05:21 +0000 | |
|---|---|---|
| committer | 2019-02-18 04:05:21 +0000 | |
| commit | 4e3524229b8c0e399d44e9558520c5db36d78f7f (patch) | |
| tree | 88a8025ad066bc49675096923e8957d47a45081b | |
| parent | 45ef6275050456125e30cc6a816ff1211e8e2b96 (diff) | |
| parent | 1d20148e8adce031c43736eccd4fefed301f66ec (diff) | |
Merge "MediaSession2: Make getConnectedControllers() public"
| -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 fe86cbe48375..fe52f3ae83cb 100644 --- a/api/current.txt +++ b/api/current.txt @@ -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(); 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> |