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

Commit 63f9f36e authored by Treehugger Robot's avatar Treehugger Robot Committed by Automerger Merge Worker
Browse files

Merge "MediaSessionRecord: add synchronize control for modification of...

Merge "MediaSessionRecord: add synchronize control for modification of mControllerCallbackHolders" into main am: 7d782bbb am: 0ae8525e

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



Change-Id: I9d49a966e66b3ed594d52cd911104f3aaaf3a9f0
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 01091e52 0ae8525e
Loading
Loading
Loading
Loading
+19 −8
Original line number Diff line number Diff line
@@ -849,7 +849,7 @@ public class MediaSessionRecord extends MediaSessionRecordImpl implements IBinde
            }
        }
        if (deadCallbackHolders != null) {
            mControllerCallbackHolders.removeAll(deadCallbackHolders);
            removeControllerHoldersSafely(deadCallbackHolders);
        }
    }

@@ -876,7 +876,7 @@ public class MediaSessionRecord extends MediaSessionRecordImpl implements IBinde
            }
        }
        if (deadCallbackHolders != null) {
            mControllerCallbackHolders.removeAll(deadCallbackHolders);
            removeControllerHoldersSafely(deadCallbackHolders);
        }
    }

@@ -911,7 +911,7 @@ public class MediaSessionRecord extends MediaSessionRecordImpl implements IBinde
            }
        }
        if (deadCallbackHolders != null) {
            mControllerCallbackHolders.removeAll(deadCallbackHolders);
            removeControllerHoldersSafely(deadCallbackHolders);
        }
    }

@@ -938,7 +938,7 @@ public class MediaSessionRecord extends MediaSessionRecordImpl implements IBinde
            }
        }
        if (deadCallbackHolders != null) {
            mControllerCallbackHolders.removeAll(deadCallbackHolders);
            removeControllerHoldersSafely(deadCallbackHolders);
        }
    }

@@ -965,7 +965,7 @@ public class MediaSessionRecord extends MediaSessionRecordImpl implements IBinde
            }
        }
        if (deadCallbackHolders != null) {
            mControllerCallbackHolders.removeAll(deadCallbackHolders);
            removeControllerHoldersSafely(deadCallbackHolders);
        }
    }

@@ -992,7 +992,7 @@ public class MediaSessionRecord extends MediaSessionRecordImpl implements IBinde
            }
        }
        if (deadCallbackHolders != null) {
            mControllerCallbackHolders.removeAll(deadCallbackHolders);
            removeControllerHoldersSafely(deadCallbackHolders);
        }
    }

@@ -1017,7 +1017,7 @@ public class MediaSessionRecord extends MediaSessionRecordImpl implements IBinde
            }
        }
        if (deadCallbackHolders != null) {
            mControllerCallbackHolders.removeAll(deadCallbackHolders);
            removeControllerHoldersSafely(deadCallbackHolders);
        }
    }

@@ -1042,7 +1042,7 @@ public class MediaSessionRecord extends MediaSessionRecordImpl implements IBinde
            }
        }
        // After notifying clear all listeners
        mControllerCallbackHolders.clear();
        removeControllerHoldersSafely(null);
    }

    private PlaybackState getStateWithUpdatedPosition() {
@@ -1090,6 +1090,17 @@ public class MediaSessionRecord extends MediaSessionRecordImpl implements IBinde
        return -1;
    }

    private void removeControllerHoldersSafely(
            Collection<ISessionControllerCallbackHolder> holders) {
        synchronized (mLock) {
            if (holders == null) {
                mControllerCallbackHolders.clear();
            } else {
                mControllerCallbackHolders.removeAll(holders);
            }
        }
    }

    private PlaybackInfo getVolumeAttributes() {
        int volumeType;
        AudioAttributes attributes;