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

Commit cadb3054 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Fix MediaSessionManager.Callback to be called with the media button session" into oc-dev

parents 37659eed 98e4aafc
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -673,7 +673,7 @@ public class MediaSessionService extends SystemService implements Monitor {
        public void onMediaButtonSessionChanged(MediaSessionRecord oldMediaButtonSession,
                MediaSessionRecord newMediaButtonSession) {
            if (DEBUG_KEY_EVENT) {
                Log.d(TAG, "Media button session will be changed to " + newMediaButtonSession);
                Log.d(TAG, "Media button session is changed to " + newMediaButtonSession);
            }
            synchronized (mLock) {
                if (oldMediaButtonSession != null) {
+10 −9
Original line number Diff line number Diff line
@@ -124,9 +124,7 @@ class MediaSessionStack {
            // When the media button session is removed, nullify the media button session and do not
            // search for the alternative media session within the app. It's because the alternative
            // media session might be a dummy which isn't able to handle the media key events.
            mOnMediaButtonSessionChangedListener.onMediaButtonSessionChanged(
                    mMediaButtonSession, null);
            mMediaButtonSession = null;
            updateMediaButtonSession(null);
        }
        clearCache(record.getUserId());
    }
@@ -163,9 +161,7 @@ class MediaSessionStack {
            MediaSessionRecord newMediaButtonSession =
                    findMediaButtonSession(mMediaButtonSession.getUid());
            if (newMediaButtonSession != mMediaButtonSession) {
                mOnMediaButtonSessionChangedListener.onMediaButtonSessionChanged(
                        mMediaButtonSession, newMediaButtonSession);
                mMediaButtonSession = newMediaButtonSession;
                updateMediaButtonSession(newMediaButtonSession);
            }
        }
    }
@@ -199,9 +195,7 @@ class MediaSessionStack {
                // Found the media button session.
                mAudioPlaybackMonitor.cleanUpAudioPlaybackUids(mediaButtonSession.getUid());
                if (mMediaButtonSession != mediaButtonSession) {
                    mOnMediaButtonSessionChangedListener.onMediaButtonSessionChanged(
                            mMediaButtonSession, mediaButtonSession);
                    mMediaButtonSession = mediaButtonSession;
                    updateMediaButtonSession(mediaButtonSession);
                }
                return;
            }
@@ -262,6 +256,13 @@ class MediaSessionStack {
        return mMediaButtonSession;
    }

    private void updateMediaButtonSession(MediaSessionRecord newMediaButtonSession) {
        MediaSessionRecord oldMediaButtonSession = mMediaButtonSession;
        mMediaButtonSession = newMediaButtonSession;
        mOnMediaButtonSessionChangedListener.onMediaButtonSessionChanged(
                oldMediaButtonSession, newMediaButtonSession);
    }

    public MediaSessionRecord getDefaultVolumeSession() {
        if (mCachedVolumeDefault != null) {
            return mCachedVolumeDefault;