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

Commit a32d2dc9 authored by Chris Li's avatar Chris Li Committed by Automerger Merge Worker
Browse files

Merge "[Bugfix][RemoteAnimation] Fix IndexOutOfBoundsException in...

Merge "[Bugfix][RemoteAnimation] Fix IndexOutOfBoundsException in onAnimationFinished of  RemoteAnimationController" am: 4b7206b8 am: b7e86b3e am: 8d5e4763 am: 0bb46778

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



Change-Id: Ifae7b9e5d21925fe0c28acaeb24e4f6583d9adf3
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents bef1e16c 0bb46778
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -71,6 +71,7 @@ class RemoteAnimationController implements DeathRecipient {
    final ArrayList<NonAppWindowAnimationAdapter> mPendingNonAppAnimations = new ArrayList<>();
    private final Handler mHandler;
    private final Runnable mTimeoutRunnable = () -> cancelAnimation("timeoutRunnable");
    private boolean mIsFinishing;

    private FinishedCallback mFinishedCallback;
    private final boolean mIsActivityEmbedding;
@@ -275,6 +276,7 @@ class RemoteAnimationController implements DeathRecipient {
                mPendingAnimations.size());
        mHandler.removeCallbacks(mTimeoutRunnable);
        synchronized (mService.mGlobalLock) {
            mIsFinishing = true;
            unlinkToDeathOfRunner();
            releaseFinishedCallback();
            mService.openSurfaceTransaction();
@@ -319,6 +321,7 @@ class RemoteAnimationController implements DeathRecipient {
                throw e;
            } finally {
                mService.closeSurfaceTransaction("RemoteAnimationController#finished");
                mIsFinishing = false;
            }
        }
        // Reset input for all activities when the remote animation is finished.
@@ -558,6 +561,9 @@ class RemoteAnimationController implements DeathRecipient {

        @Override
        public void onAnimationCancelled(SurfaceControl animationLeash) {
            if (mIsFinishing) {
                return;
            }
            if (mRecord.mAdapter == this) {
                mRecord.mAdapter = null;
            } else {