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

Commit 81c07b57 authored by Hansong Zhang's avatar Hansong Zhang Committed by Ted Wang
Browse files

AVRCP: Try update media metadata on app force quit

Bug: 139756102
Test: Connect to car, stream audio, force quit music app, media metadata
should disappear

Change-Id: Idea4943b924080df392972d8441ac9f1fd0ad19a
parent 77dfa43f
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -459,6 +459,15 @@ public class MediaPlayerList {
        if (playerId == mActivePlayerId && playerId != NO_ACTIVE_PLAYER) {
            getActivePlayer().unregisterCallback();
            mActivePlayerId = NO_ACTIVE_PLAYER;
            List<Metadata> queue = new ArrayList<Metadata>();
            queue.add(Util.empty_data());
            MediaData newData = new MediaData(
                    Util.empty_data(),
                    null,
                    queue
                );

            sendMediaUpdate(newData);
        }

        final MediaPlayerWrapper wrapper = mMediaPlayers.get(playerId);
@@ -607,6 +616,14 @@ public class MediaPlayerList {

            sendMediaUpdate(data);
        }

        @Override
        public void sessionUpdatedCallback(String packageName) {
            if (packageName != null && mMediaPlayerIds.containsKey(packageName)) {
                Log.d(TAG, "sessionUpdatedCallback(): packageName: " + packageName);
                removeMediaPlayer(mMediaPlayerIds.get(packageName));
            }
        }
    };

    private final MediaSessionManager.Callback mButtonDispatchCallback =
+2 −0
Original line number Diff line number Diff line
@@ -60,6 +60,7 @@ class MediaPlayerWrapper {

    public interface Callback {
        void mediaUpdatedCallback(MediaData data);
        void sessionUpdatedCallback(String packageName);
    }

    boolean isPlaybackStateReady() {
@@ -470,6 +471,7 @@ class MediaPlayerWrapper {
        @Override
        public void onSessionDestroyed() {
            Log.w(TAG, "The session was destroyed " + mPackageName);
            mRegisteredCallback.sessionUpdatedCallback(mPackageName);
        }

        @VisibleForTesting