Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 39977979 authored by Sungsoo Lim's avatar Sungsoo Lim Committed by android-build-merger
Browse files

Merge "Fix the finding logic of MediaButtonSession" into oc-dev

am: 9cfd3020

Change-Id: I4de9857958f30cfa251da56d20c07fcca8973d95
parents 59cd5a98 9cfd3020
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -319,6 +319,15 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {
        return mIsActive && !mDestroyed;
    }

    /**
     * Get the playback state.
     *
     * @return The current playback state.
     */
    public PlaybackState getPlaybackState() {
        return mPlaybackState;
    }

    /**
     * Check if the session is currently performing playback.
     *
+5 −4
Original line number Diff line number Diff line
@@ -153,7 +153,7 @@ class MediaSessionStack {
            mCachedVolumeDefault = null;
        }

        // In most cases, playback state isn't needed for finding media buttion session,
        // In most cases, playback state isn't needed for finding media button session,
        // but we only use it as a hint if an app has multiple local media sessions.
        // In that case, we pick the media session whose PlaybackState matches
        // the audio playback configuration.
@@ -204,8 +204,9 @@ class MediaSessionStack {

    /**
     * Find the media button session with the given {@param uid}.
     * If the app has multiple media sessions, the media session matches the audio playback state
     * becomes the media button session.
     * If the app has multiple media sessions, the media session whose playback state is not null
     * and matches the audio playback state becomes the media button session. Otherwise the top
     * priority session becomes the media button session.
     *
     * @return The media button session. Returns {@code null} if the app doesn't have a media
     *   session.
@@ -214,7 +215,7 @@ class MediaSessionStack {
        MediaSessionRecord mediaButtonSession = null;
        for (MediaSessionRecord session : mSessions) {
            if (uid == session.getUid()) {
                if (session.isPlaybackActive() ==
                if (session.getPlaybackState() != null && session.isPlaybackActive() ==
                        mAudioPlaybackMonitor.isPlaybackActive(session.getUid())) {
                    // If there's a media session whose PlaybackState matches
                    // the audio playback state, return it immediately.