summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media/java/android/media/session/ISessionManager.aidl3
-rw-r--r--media/java/android/media/session/MediaSessionManager.java4
-rw-r--r--services/core/java/com/android/server/media/MediaSessionServiceImpl.java5
3 files changed, 8 insertions, 4 deletions
diff --git a/media/java/android/media/session/ISessionManager.aidl b/media/java/android/media/session/ISessionManager.aidl
index e073a4e2f6c8..a67a37eedd27 100644
--- a/media/java/android/media/session/ISessionManager.aidl
+++ b/media/java/android/media/session/ISessionManager.aidl
@@ -16,6 +16,7 @@
package android.media.session;
import android.content.ComponentName;
+import android.content.pm.ParceledListSlice;
import android.media.IRemoteVolumeController;
import android.media.Session2Token;
import android.media.session.IActiveSessionsListener;
@@ -38,7 +39,7 @@ interface ISessionManager {
in Bundle sessionInfo, int userId);
void notifySession2Created(in Session2Token sessionToken);
List<MediaSession.Token> getSessions(in ComponentName compName, int userId);
- List<Session2Token> getSession2Tokens(int userId);
+ ParceledListSlice getSession2Tokens(int userId);
void dispatchMediaKeyEvent(String packageName, boolean asSystemService, in KeyEvent keyEvent,
boolean needWakeLock);
boolean dispatchMediaKeyEventToSessionAsSystemService(String packageName,
diff --git a/media/java/android/media/session/MediaSessionManager.java b/media/java/android/media/session/MediaSessionManager.java
index 51e3a4dc8c4b..569d11e1dce6 100644
--- a/media/java/android/media/session/MediaSessionManager.java
+++ b/media/java/android/media/session/MediaSessionManager.java
@@ -24,6 +24,7 @@ import android.annotation.SystemService;
import android.annotation.UnsupportedAppUsage;
import android.content.ComponentName;
import android.content.Context;
+import android.content.pm.ParceledListSlice;
import android.media.AudioManager;
import android.media.IRemoteVolumeController;
import android.media.MediaSession2;
@@ -218,7 +219,8 @@ public final class MediaSessionManager {
@NonNull
public List<Session2Token> getSession2Tokens(int userId) {
try {
- return mService.getSession2Tokens(userId);
+ ParceledListSlice slice = mService.getSession2Tokens(userId);
+ return slice == null ? new ArrayList<>() : slice.getList();
} catch (RemoteException e) {
Log.e(TAG, "Failed to get session tokens", e);
}
diff --git a/services/core/java/com/android/server/media/MediaSessionServiceImpl.java b/services/core/java/com/android/server/media/MediaSessionServiceImpl.java
index fdb499b5cd0e..aa886c27d7d8 100644
--- a/services/core/java/com/android/server/media/MediaSessionServiceImpl.java
+++ b/services/core/java/com/android/server/media/MediaSessionServiceImpl.java
@@ -33,6 +33,7 @@ import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
+import android.content.pm.ParceledListSlice;
import android.content.pm.ServiceInfo;
import android.content.pm.UserInfo;
import android.database.ContentObserver;
@@ -1072,7 +1073,7 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl {
}
@Override
- public List<Session2Token> getSession2Tokens(int userId) {
+ public ParceledListSlice getSession2Tokens(int userId) {
final int pid = Binder.getCallingPid();
final int uid = Binder.getCallingUid();
final long token = Binder.clearCallingIdentity();
@@ -1087,7 +1088,7 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl {
synchronized (mLock) {
result = getSession2TokensLocked(resolvedUserId);
}
- return result;
+ return new ParceledListSlice(result);
} finally {
Binder.restoreCallingIdentity(token);
}