Loading services/core/java/com/android/server/media/AudioPlayerStateMonitor.java +22 −1 Original line number Diff line number Diff line Loading @@ -142,7 +142,8 @@ class AudioPlayerStateMonitor { /** * Returns the sorted list of UIDs that have had active audio playback. (i.e. playing an * audio/video) The UID whose audio playback becomes active at the last comes first. * audio/video) The UID whose audio is currently playing comes first, then the UID whose audio * playback becomes active at the last comes next. */ public IntArray getSortedAudioPlaybackClientUids() { IntArray sortedAudioPlaybackClientUids = new IntArray(); Loading Loading @@ -253,6 +254,26 @@ class AudioPlayerStateMonitor { mSortedAudioPlaybackClientUids.add(0, uid); } } if (mActiveAudioUids.size() > 0 && !mActiveAudioUids.contains(mSortedAudioPlaybackClientUids.get(0))) { int firstActiveUid = -1; int firatActiveUidIndex = -1; for (int i = 1; i < mSortedAudioPlaybackClientUids.size(); ++i) { int uid = mSortedAudioPlaybackClientUids.get(i); if (mActiveAudioUids.contains(uid)) { firatActiveUidIndex = i; firstActiveUid = uid; break; } } for (int i = firatActiveUidIndex; i > 0; --i) { mSortedAudioPlaybackClientUids.set(i, mSortedAudioPlaybackClientUids.get(i - 1)); } mSortedAudioPlaybackClientUids.set(0, firstActiveUid); } // Notify the active state change of audio players. for (AudioPlaybackConfiguration config : configs) { final int pii = config.getPlayerInterfaceId(); Loading services/core/java/com/android/server/media/MediaSessionServiceImpl.java +1 −1 Original line number Diff line number Diff line Loading @@ -171,7 +171,7 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl { mAudioPlayerStateMonitor = AudioPlayerStateMonitor.getInstance(mContext); mAudioPlayerStateMonitor.registerListener( (config, isRemoved) -> { if (isRemoved || !config.isActive() || config.getPlayerType() if (config.getPlayerType() == AudioPlaybackConfiguration.PLAYER_TYPE_JAM_SOUNDPOOL) { return; } Loading Loading
services/core/java/com/android/server/media/AudioPlayerStateMonitor.java +22 −1 Original line number Diff line number Diff line Loading @@ -142,7 +142,8 @@ class AudioPlayerStateMonitor { /** * Returns the sorted list of UIDs that have had active audio playback. (i.e. playing an * audio/video) The UID whose audio playback becomes active at the last comes first. * audio/video) The UID whose audio is currently playing comes first, then the UID whose audio * playback becomes active at the last comes next. */ public IntArray getSortedAudioPlaybackClientUids() { IntArray sortedAudioPlaybackClientUids = new IntArray(); Loading Loading @@ -253,6 +254,26 @@ class AudioPlayerStateMonitor { mSortedAudioPlaybackClientUids.add(0, uid); } } if (mActiveAudioUids.size() > 0 && !mActiveAudioUids.contains(mSortedAudioPlaybackClientUids.get(0))) { int firstActiveUid = -1; int firatActiveUidIndex = -1; for (int i = 1; i < mSortedAudioPlaybackClientUids.size(); ++i) { int uid = mSortedAudioPlaybackClientUids.get(i); if (mActiveAudioUids.contains(uid)) { firatActiveUidIndex = i; firstActiveUid = uid; break; } } for (int i = firatActiveUidIndex; i > 0; --i) { mSortedAudioPlaybackClientUids.set(i, mSortedAudioPlaybackClientUids.get(i - 1)); } mSortedAudioPlaybackClientUids.set(0, firstActiveUid); } // Notify the active state change of audio players. for (AudioPlaybackConfiguration config : configs) { final int pii = config.getPlayerInterfaceId(); Loading
services/core/java/com/android/server/media/MediaSessionServiceImpl.java +1 −1 Original line number Diff line number Diff line Loading @@ -171,7 +171,7 @@ public class MediaSessionServiceImpl extends MediaSessionService.ServiceImpl { mAudioPlayerStateMonitor = AudioPlayerStateMonitor.getInstance(mContext); mAudioPlayerStateMonitor.registerListener( (config, isRemoved) -> { if (isRemoved || !config.isActive() || config.getPlayerType() if (config.getPlayerType() == AudioPlaybackConfiguration.PLAYER_TYPE_JAM_SOUNDPOOL) { return; } Loading