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

Commit 5db2be05 authored by Pablo Gamito's avatar Pablo Gamito Committed by Automerger Merge Worker
Browse files

Merge "Create a new Transaction to apply the edge extensions" into tm-dev am:...

Merge "Create a new Transaction to apply the edge extensions" into tm-dev am: 4d9da928 am: ea7d8255

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



Change-Id: I3fb4aad9cf4fc02ec356f200f1407fabc1ffea04
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents edfbfe92 ea7d8255
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -176,13 +176,24 @@ class SurfaceAnimationRunner {
                t.addTransactionCommittedListener(Runnable::run, () -> {
                    final WindowAnimationSpec animationSpec = a.asWindowAnimationSpec();

                    final Transaction edgeExtensionCreationTransaction = new Transaction();
                    edgeExtendWindow(animationLeash,
                            animationSpec.getRootTaskBounds(), animationSpec.getAnimation(),
                            mFrameTransaction);
                            edgeExtensionCreationTransaction);

                    synchronized (mLock) {
                        // only run if animation is not yet canceled by this point
                        if (mPreProcessingAnimations.get(animationLeash) == runningAnim) {
                            // In the case the animation is cancelled, edge extensions are removed
                            // onAnimationLeashLost which is called before onAnimationCancelled.
                            // So we need to check if the edge extensions have already been removed
                            // or not, and if so we don't want to apply the transaction.
                            synchronized (mEdgeExtensionLock) {
                                if (!mEdgeExtensions.isEmpty()) {
                                    edgeExtensionCreationTransaction.apply();
                                }
                            }

                            mPreProcessingAnimations.remove(animationLeash);
                            mPendingAnimations.put(animationLeash, runningAnim);
                            if (!mAnimationStartDeferred) {