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

Commit cb139682 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Ensure MediaSession2Record is initialized before used" into sc-dev am: 960f5666

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14781658

Change-Id: Ic5b86d62cb03fde421d6dbf715f187f59f6d3d8b
parents 9c24460a 960f5666
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);
        }
    }
}