diff options
| -rw-r--r-- | api/module-lib-current.txt | 1 | ||||
| -rw-r--r-- | media/java/android/media/RemoteController.java | 2 | ||||
| -rw-r--r-- | media/java/android/media/session/MediaSessionManager.java | 55 | ||||
| -rw-r--r-- | non-updatable-api/module-lib-current.txt | 1 |
4 files changed, 29 insertions, 30 deletions
diff --git a/api/module-lib-current.txt b/api/module-lib-current.txt index ab8944277e9a..d27f5a5c006e 100644 --- a/api/module-lib-current.txt +++ b/api/module-lib-current.txt @@ -66,6 +66,7 @@ package android.media.session { } public final class MediaSessionManager { + method public void addOnActiveSessionsChangedListener(@NonNull android.media.session.MediaSessionManager.OnActiveSessionsChangedListener, @Nullable android.content.ComponentName, int, @Nullable android.os.Handler); method public void dispatchMediaKeyEventAsSystemService(@NonNull android.view.KeyEvent); method public boolean dispatchMediaKeyEventAsSystemService(@NonNull android.media.session.MediaSession.Token, @NonNull android.view.KeyEvent); method public void dispatchVolumeKeyEventAsSystemService(@NonNull android.view.KeyEvent, int); diff --git a/media/java/android/media/RemoteController.java b/media/java/android/media/RemoteController.java index 9e48f1e05391..35cfaca8562a 100644 --- a/media/java/android/media/RemoteController.java +++ b/media/java/android/media/RemoteController.java @@ -538,7 +538,7 @@ import java.util.List; handler = new Handler(Looper.getMainLooper()); } mSessionManager.addOnActiveSessionsChangedListener(mSessionListener, listenerComponent, - UserHandle.myUserId(), handler); + handler); mSessionListener.onActiveSessionsChanged(mSessionManager .getActiveSessions(listenerComponent)); if (DEBUG) { diff --git a/media/java/android/media/session/MediaSessionManager.java b/media/java/android/media/session/MediaSessionManager.java index 9494295e4bd9..3acb9516054e 100644 --- a/media/java/android/media/session/MediaSessionManager.java +++ b/media/java/android/media/session/MediaSessionManager.java @@ -20,6 +20,7 @@ import android.annotation.CallbackExecutor; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; +import android.annotation.SuppressLint; import android.annotation.SystemApi; import android.annotation.SystemService; import android.compat.annotation.UnsupportedAppUsage; @@ -262,18 +263,14 @@ public final class MediaSessionManager { } /** - * Add a listener to be notified when the list of active sessions - * changes.This requires the - * android.Manifest.permission.MEDIA_CONTENT_CONTROL permission be held by - * the calling app. You may also retrieve this list if your app is an - * enabled notification listener using the - * {@link NotificationListenerService} APIs, in which case you must pass the - * {@link ComponentName} of your enabled listener. Updates will be posted to - * the thread that registered the listener. + * Add a listener to be notified when the list of active sessions changes. This requires the + * {@link android.Manifest.permission#MEDIA_CONTENT_CONTROL} permission be held by the calling + * app. You may also retrieve this list if your app is an enabled notification listener using + * the {@link NotificationListenerService} APIs, in which case you must pass the + * {@link ComponentName} of your enabled listener. * * @param sessionListener The listener to add. - * @param notificationListener The enabled notification listener component. - * May be null. + * @param notificationListener The enabled notification listener component. May be null. */ public void addOnActiveSessionsChangedListener( @NonNull OnActiveSessionsChangedListener sessionListener, @@ -282,18 +279,15 @@ public final class MediaSessionManager { } /** - * Add a listener to be notified when the list of active sessions - * changes.This requires the - * android.Manifest.permission.MEDIA_CONTENT_CONTROL permission be held by - * the calling app. You may also retrieve this list if your app is an - * enabled notification listener using the - * {@link NotificationListenerService} APIs, in which case you must pass the - * {@link ComponentName} of your enabled listener. Updates will be posted to - * the handler specified or to the caller's thread if the handler is null. + * Add a listener to be notified when the list of active sessions changes. This requires the + * {@link android.Manifest.permission#MEDIA_CONTENT_CONTROL} permission be held by the calling + * app. You may also retrieve this list if your app is an enabled notification listener using + * the {@link NotificationListenerService} APIs, in which case you must pass the + * {@link ComponentName} of your enabled listener. Updates will be posted to the handler + * specified or to the caller's thread if the handler is null. * * @param sessionListener The listener to add. - * @param notificationListener The enabled notification listener component. - * May be null. + * @param notificationListener The enabled notification listener component. May be null. * @param handler The handler to post events to. */ public void addOnActiveSessionsChangedListener( @@ -304,21 +298,24 @@ public final class MediaSessionManager { } /** - * Add a listener to be notified when the list of active sessions - * changes.This requires the - * android.Manifest.permission.MEDIA_CONTENT_CONTROL permission be held by - * the calling app. You may also retrieve this list if your app is an - * enabled notification listener using the - * {@link NotificationListenerService} APIs, in which case you must pass the - * {@link ComponentName} of your enabled listener. + * Add a listener to be notified when the list of active sessions changes for the given user. + * The calling app must have the {@link android.Manifest.permission#INTERACT_ACROSS_USERS_FULL} + * permission if it wants to call this method for a user that is not running the app. + * <p> + * This requires the {@link android.Manifest.permission#MEDIA_CONTENT_CONTROL} permission be + * held by the calling app. You may also retrieve this list if your app is an enabled + * notification listener using the {@link NotificationListenerService} APIs, in which case you + * must pass the {@link ComponentName} of your enabled listener. Updates will be posted to the + * handler specified or to the caller's thread if the handler is null. * * @param sessionListener The listener to add. - * @param notificationListener The enabled notification listener component. - * May be null. + * @param notificationListener The enabled notification listener component. May be null. * @param userId The userId to listen for changes on. * @param handler The handler to post updates on. * @hide */ + @SuppressLint({"ExecutorRegistration", "SamShouldBeLast"}) + @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) public void addOnActiveSessionsChangedListener( @NonNull OnActiveSessionsChangedListener sessionListener, @Nullable ComponentName notificationListener, int userId, @Nullable Handler handler) { diff --git a/non-updatable-api/module-lib-current.txt b/non-updatable-api/module-lib-current.txt index 3810325c982f..85136df0d1ad 100644 --- a/non-updatable-api/module-lib-current.txt +++ b/non-updatable-api/module-lib-current.txt @@ -66,6 +66,7 @@ package android.media.session { } public final class MediaSessionManager { + method public void addOnActiveSessionsChangedListener(@NonNull android.media.session.MediaSessionManager.OnActiveSessionsChangedListener, @Nullable android.content.ComponentName, int, @Nullable android.os.Handler); method public void dispatchMediaKeyEventAsSystemService(@NonNull android.view.KeyEvent); method public boolean dispatchMediaKeyEventAsSystemService(@NonNull android.media.session.MediaSession.Token, @NonNull android.view.KeyEvent); method public void dispatchVolumeKeyEventAsSystemService(@NonNull android.view.KeyEvent, int); |