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

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

Merge "Ensure MediaSession2Record is initialized before used" into sc-dev

parents 1dfd9484 a3aec618
Loading
Loading
Loading
Loading
+22 −10
Original line number Diff line number Diff line
@@ -56,6 +56,9 @@ public class MediaSession2Record implements MediaSessionRecordImpl {

    public MediaSession2Record(Session2Token sessionToken, MediaSessionService service,
            Looper handlerLooper, int policies) {
        // The lock is required to prevent `Controller2Callback` from using partially initialized
        // `MediaSession2Record.this`.
        synchronized (mLock) {
            mSessionToken = sessionToken;
            mService = service;
            mHandlerExecutor = new HandlerExecutor(new Handler(handlerLooper));
@@ -64,6 +67,7 @@ public class MediaSession2Record implements MediaSessionRecordImpl {
                    .build();
            mPolicies = policies;
        }
    }

    @Override
    public String getPackageName() {
@@ -176,10 +180,12 @@ public class MediaSession2Record implements MediaSessionRecordImpl {
            if (DEBUG) {
                Log.d(TAG, "connected to " + mSessionToken + ", allowed=" + allowedCommands);
            }
            MediaSessionService service;
            synchronized (mLock) {
                mIsConnected = true;
                service = mService;
            }
            mService.onSessionActiveStateChanged(MediaSession2Record.this);
            service.onSessionActiveStateChanged(MediaSession2Record.this);
        }

        @Override
@@ -187,10 +193,12 @@ public class MediaSession2Record implements MediaSessionRecordImpl {
            if (DEBUG) {
                Log.d(TAG, "disconnected from " + mSessionToken);
            }
            MediaSessionService service;
            synchronized (mLock) {
                mIsConnected = false;
                service = mService;
            }
            mService.onSessionDied(MediaSession2Record.this);
            service.onSessionDied(MediaSession2Record.this);
        }

        @Override
@@ -199,7 +207,11 @@ public class MediaSession2Record implements MediaSessionRecordImpl {
                Log.d(TAG, "playback active changed, " + mSessionToken + ", active="
                        + playbackActive);
            }
            mService.onSessionPlaybackStateChanged(MediaSession2Record.this, playbackActive);
            MediaSessionService service;
            synchronized (mLock) {
                service = mService;
            }
            service.onSessionPlaybackStateChanged(MediaSession2Record.this, playbackActive);
        }
    }
}