Merge "Use ParceledListSlice in MediaSessionManager#getSession2Tokens" into qt-dev

This commit is contained in:
TreeHugger Robot
2019-04-29 10:03:22 +00:00
committed by Android (Google) Code Review
3 changed files with 8 additions and 4 deletions

View File

@@ -16,6 +16,7 @@
package android.media.session; package android.media.session;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.pm.ParceledListSlice;
import android.media.IRemoteVolumeController; import android.media.IRemoteVolumeController;
import android.media.Session2Token; import android.media.Session2Token;
import android.media.session.IActiveSessionsListener; import android.media.session.IActiveSessionsListener;
@@ -38,7 +39,7 @@ interface ISessionManager {
in Bundle sessionInfo, int userId); in Bundle sessionInfo, int userId);
void notifySession2Created(in Session2Token sessionToken); void notifySession2Created(in Session2Token sessionToken);
List<MediaSession.Token> getSessions(in ComponentName compName, int userId); 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, void dispatchMediaKeyEvent(String packageName, boolean asSystemService, in KeyEvent keyEvent,
boolean needWakeLock); boolean needWakeLock);
boolean dispatchMediaKeyEventToSessionAsSystemService(String packageName, boolean dispatchMediaKeyEventToSessionAsSystemService(String packageName,

View File

@@ -24,6 +24,7 @@ import android.annotation.SystemService;
import android.annotation.UnsupportedAppUsage; import android.annotation.UnsupportedAppUsage;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
import android.content.pm.ParceledListSlice;
import android.media.AudioManager; import android.media.AudioManager;
import android.media.IRemoteVolumeController; import android.media.IRemoteVolumeController;
import android.media.MediaSession2; import android.media.MediaSession2;
@@ -218,7 +219,8 @@ public final class MediaSessionManager {
@NonNull @NonNull
public List<Session2Token> getSession2Tokens(int userId) { public List<Session2Token> getSession2Tokens(int userId) {
try { try {
return mService.getSession2Tokens(userId); ParceledListSlice slice = mService.getSession2Tokens(userId);
return slice == null ? new ArrayList<>() : slice.getList();
} catch (RemoteException e) { } catch (RemoteException e) {
Log.e(TAG, "Failed to get session tokens", e); Log.e(TAG, "Failed to get session tokens", e);
} }

View File

@@ -33,6 +33,7 @@ import android.content.Intent;
import android.content.pm.ActivityInfo; import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ParceledListSlice;
import android.content.pm.ServiceInfo; import android.content.pm.ServiceInfo;
import android.content.pm.UserInfo; import android.content.pm.UserInfo;
import android.database.ContentObserver; import android.database.ContentObserver;
@@ -1072,7 +1073,7 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl {
} }
@Override @Override
public List<Session2Token> getSession2Tokens(int userId) { public ParceledListSlice getSession2Tokens(int userId) {
final int pid = Binder.getCallingPid(); final int pid = Binder.getCallingPid();
final int uid = Binder.getCallingUid(); final int uid = Binder.getCallingUid();
final long token = Binder.clearCallingIdentity(); final long token = Binder.clearCallingIdentity();
@@ -1087,7 +1088,7 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl {
synchronized (mLock) { synchronized (mLock) {
result = getSession2TokensLocked(resolvedUserId); result = getSession2TokensLocked(resolvedUserId);
} }
return result; return new ParceledListSlice(result);
} finally { } finally {
Binder.restoreCallingIdentity(token); Binder.restoreCallingIdentity(token);
} }