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

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

Merge "MediaSession2: Code cleanup for setPlayer"

parents e65b694a c49998bb
Loading
Loading
Loading
Loading
+13 −22
Original line number Diff line number Diff line
@@ -158,9 +158,7 @@ public class MediaSession2Impl implements MediaSession2Provider {
                    mContext.getPackageName(), null, id, mSessionStub).getInstance();
        }

        setPlayerLocked(player);
        mVolumeProvider = volumeProvider;
        mPlaybackInfo = createPlaybackInfo(volumeProvider, player.getAudioAttributes());
        setPlayer(player, volumeProvider);

        // Ask server for the sanity check, and starts
        // Sanity check for making session ID unique 'per package' cannot be done in here.
@@ -210,14 +208,7 @@ public class MediaSession2Impl implements MediaSession2Provider {
        if (player == null) {
            throw new IllegalArgumentException("player shouldn't be null");
        }
        PlaybackInfo info =
                createPlaybackInfo(null /* VolumeProvider */, player.getAudioAttributes());
        synchronized (mLock) {
            setPlayerLocked(player);
            mVolumeProvider = null;
            mPlaybackInfo = info;
        }
        mSessionStub.notifyPlaybackInfoChanged(info);
        setPlayer(player, null);
    }

    @Override
@@ -230,16 +221,12 @@ public class MediaSession2Impl implements MediaSession2Provider {
        if (volumeProvider == null) {
            throw new IllegalArgumentException("volumeProvider shouldn't be null");
        }
        PlaybackInfo info = createPlaybackInfo(volumeProvider, player.getAudioAttributes());
        synchronized (mLock) {
            setPlayerLocked(player);
            mVolumeProvider = volumeProvider;
            mPlaybackInfo = info;
        }
        mSessionStub.notifyPlaybackInfoChanged(info);
        setPlayer(player, volumeProvider);
    }

    private void setPlayerLocked(MediaPlayerInterface player) {
    private void setPlayer(MediaPlayerInterface player, VolumeProvider2 volumeProvider) {
        PlaybackInfo info = createPlaybackInfo(volumeProvider, player.getAudioAttributes());
        synchronized (mLock) {
            if (mPlayer != null && mListener != null) {
                // This might not work for a poorly implemented player.
                mPlayer.removePlaybackListener(mListener);
@@ -247,6 +234,10 @@ public class MediaSession2Impl implements MediaSession2Provider {
            mPlayer = player;
            mListener = new MyPlaybackListener(this, player);
            player.addPlaybackListener(mCallbackExecutor, mListener);
            mVolumeProvider = volumeProvider;
            mPlaybackInfo = info;
        }
        mSessionStub.notifyPlaybackInfoChanged(info);
    }

    private PlaybackInfo createPlaybackInfo(VolumeProvider2 volumeProvider, AudioAttributes attrs) {