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

Commit 80aa626e authored by RoboErik's avatar RoboErik Committed by Android Git Automerger
Browse files

am a65a4f64: am 9eef5bf8: Merge "Be more paranoid about threading in...

am a65a4f64: am 9eef5bf8: Merge "Be more paranoid about threading in MediaSessionRecord" into lmp-dev

* commit 'a65a4f64':
  Be more paranoid about threading in MediaSessionRecord
parents 345effc2 a65a4f64
Loading
Loading
Loading
Loading
+29 −9
Original line number Diff line number Diff line
@@ -615,7 +615,10 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {
    }

    private PlaybackState getStateWithUpdatedPosition() {
        PlaybackState state = mPlaybackState;
        PlaybackState state;
        synchronized (mLock) {
            state = mPlaybackState;
        }
        long duration = -1;
        if (mMetadata != null && mMetadata.containsKey(MediaMetadata.METADATA_KEY_DURATION)) {
            duration = mMetadata.getLong(MediaMetadata.METADATA_KEY_DURATION);
@@ -674,7 +677,8 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {

        @Override
        public void sendEvent(String event, Bundle data) {
            mHandler.post(MessageHandler.MSG_SEND_EVENT, event, data);
            mHandler.post(MessageHandler.MSG_SEND_EVENT, event,
                    data == null ? null : new Bundle(data));
        }

        @Override
@@ -712,7 +716,11 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {

        @Override
        public void setMetadata(MediaMetadata metadata) {
            mMetadata = metadata;
            // Make a copy of the metadata as the underlying bundle may be
            // modified on this thread.
            synchronized (mLock) {
                mMetadata = metadata == null ? null : new MediaMetadata.Builder(metadata).build();
            }
            mHandler.post(MessageHandler.MSG_UPDATE_METADATA);
        }

@@ -723,14 +731,18 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {
            if (MediaSession.isActiveState(oldState) && newState == PlaybackState.STATE_PAUSED) {
                mLastActiveTime = SystemClock.elapsedRealtime();
            }
            synchronized (mLock) {
                mPlaybackState = state;
            }
            mService.onSessionPlaystateChange(MediaSessionRecord.this, oldState, newState);
            mHandler.post(MessageHandler.MSG_UPDATE_PLAYBACK_STATE);
        }

        @Override
        public void setQueue(ParceledListSlice queue) {
            synchronized (mLock) {
                mQueue = queue;
            }
            mHandler.post(MessageHandler.MSG_UPDATE_QUEUE);
        }

@@ -742,7 +754,9 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {

        @Override
        public void setExtras(Bundle extras) {
            mExtras = extras;
            synchronized (mLock) {
                mExtras = extras == null ? null : new Bundle(extras);
            }
            mHandler.post(MessageHandler.MSG_UPDATE_EXTRAS);
        }

@@ -1118,8 +1132,10 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {

        @Override
        public MediaMetadata getMetadata() {
            synchronized (mLock) {
                return mMetadata;
            }
        }

        @Override
        public PlaybackState getPlaybackState() {
@@ -1128,8 +1144,10 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {

        @Override
        public ParceledListSlice getQueue() {
            synchronized (mLock) {
                return mQueue;
            }
        }

        @Override
        public CharSequence getQueueTitle() {
@@ -1138,8 +1156,10 @@ public class MediaSessionRecord implements IBinder.DeathRecipient {

        @Override
        public Bundle getExtras() {
            synchronized (mLock) {
                return mExtras;
            }
        }

        @Override
        public int getRatingType() {