Loading services/core/java/com/android/server/media/MediaSessionServiceImpl.java +38 −29 Original line number Diff line number Diff line Loading @@ -140,6 +140,7 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl { private AudioPlayerStateMonitor mAudioPlayerStateMonitor; // Used to notify System UI and Settings when remote volume was changed. @GuardedBy("mLock") final RemoteCallbackList<IRemoteVolumeController> mRemoteVolumeControllers = new RemoteCallbackList<>(); Loading Loading @@ -287,6 +288,7 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl { if (!session.isActive()) { return; } synchronized (mLock) { int size = mRemoteVolumeControllers.beginBroadcast(); MediaSession.Token token = session.getSessionToken(); for (int i = size - 1; i >= 0; i--) { Loading @@ -299,6 +301,7 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl { } mRemoteVolumeControllers.finishBroadcast(); } } @Override public void onSessionPlaystateChanged(MediaSessionRecord record, int oldState, int newState) { Loading Loading @@ -647,6 +650,7 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl { return; } synchronized (mLock) { int size = mRemoteVolumeControllers.beginBroadcast(); MediaSessionRecord record = user.mPriorityStack.getDefaultRemoteSession(userId); MediaSession.Token token = record == null ? null : record.getSessionToken(); Loading @@ -661,6 +665,7 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl { } mRemoteVolumeControllers.finishBroadcast(); } } void pushSession2TokensChangedLocked(int userId) { List<Session2Token> allSession2Tokens = getSession2TokensLocked(USER_ALL); Loading Loading @@ -1676,6 +1681,7 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl { final int pid = Binder.getCallingPid(); final int uid = Binder.getCallingUid(); final long token = Binder.clearCallingIdentity(); synchronized (mLock) { try { enforceStatusBarServicePermission("listen for volume changes", pid, uid); mRemoteVolumeControllers.register(rvc); Loading @@ -1683,12 +1689,14 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl { Binder.restoreCallingIdentity(token); } } } @Override public void unregisterRemoteVolumeController(IRemoteVolumeController rvc) { final int pid = Binder.getCallingPid(); final int uid = Binder.getCallingUid(); final long token = Binder.clearCallingIdentity(); synchronized (mLock) { try { enforceStatusBarServicePermission("listen for volume changes", pid, uid); mRemoteVolumeControllers.unregister(rvc); Loading @@ -1696,6 +1704,7 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl { Binder.restoreCallingIdentity(token); } } } @Override public boolean isGlobalPriorityActive() { Loading Loading
services/core/java/com/android/server/media/MediaSessionServiceImpl.java +38 −29 Original line number Diff line number Diff line Loading @@ -140,6 +140,7 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl { private AudioPlayerStateMonitor mAudioPlayerStateMonitor; // Used to notify System UI and Settings when remote volume was changed. @GuardedBy("mLock") final RemoteCallbackList<IRemoteVolumeController> mRemoteVolumeControllers = new RemoteCallbackList<>(); Loading Loading @@ -287,6 +288,7 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl { if (!session.isActive()) { return; } synchronized (mLock) { int size = mRemoteVolumeControllers.beginBroadcast(); MediaSession.Token token = session.getSessionToken(); for (int i = size - 1; i >= 0; i--) { Loading @@ -299,6 +301,7 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl { } mRemoteVolumeControllers.finishBroadcast(); } } @Override public void onSessionPlaystateChanged(MediaSessionRecord record, int oldState, int newState) { Loading Loading @@ -647,6 +650,7 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl { return; } synchronized (mLock) { int size = mRemoteVolumeControllers.beginBroadcast(); MediaSessionRecord record = user.mPriorityStack.getDefaultRemoteSession(userId); MediaSession.Token token = record == null ? null : record.getSessionToken(); Loading @@ -661,6 +665,7 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl { } mRemoteVolumeControllers.finishBroadcast(); } } void pushSession2TokensChangedLocked(int userId) { List<Session2Token> allSession2Tokens = getSession2TokensLocked(USER_ALL); Loading Loading @@ -1676,6 +1681,7 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl { final int pid = Binder.getCallingPid(); final int uid = Binder.getCallingUid(); final long token = Binder.clearCallingIdentity(); synchronized (mLock) { try { enforceStatusBarServicePermission("listen for volume changes", pid, uid); mRemoteVolumeControllers.register(rvc); Loading @@ -1683,12 +1689,14 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl { Binder.restoreCallingIdentity(token); } } } @Override public void unregisterRemoteVolumeController(IRemoteVolumeController rvc) { final int pid = Binder.getCallingPid(); final int uid = Binder.getCallingUid(); final long token = Binder.clearCallingIdentity(); synchronized (mLock) { try { enforceStatusBarServicePermission("listen for volume changes", pid, uid); mRemoteVolumeControllers.unregister(rvc); Loading @@ -1696,6 +1704,7 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl { Binder.restoreCallingIdentity(token); } } } @Override public boolean isGlobalPriorityActive() { Loading