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

Commit 44f00e6e authored by Justin Weir's avatar Justin Weir Committed by Android (Google) Code Review
Browse files

Revert "Partially revert ag/27263995"

This reverts commit 20b076f1.

Reason for revert: b/339801674 is fixed

Change-Id: I63445f6d4fe9dc693e547df2ecd4026f5f72363b
parent 20b076f1
Loading
Loading
Loading
Loading
+3 −20
Original line number Diff line number Diff line
@@ -944,27 +944,10 @@ private class AnimatedDialog(
                }

                override fun onTransitionAnimationEnd(isExpandingFullyAbove: Boolean) {
                    // onLaunchAnimationEnd is called by an Animator at the end of the animation,
                    // on a Choreographer animation tick. The following calls will move the animated
                    // content from the dialog overlay back to its original position, and this
                    // change must be reflected in the next frame given that we then sync the next
                    // frame of both the content and dialog ViewRoots. However, in case that content
                    // is rendered by Compose, whose compositions are also scheduled on a
                    // Choreographer frame, any state change made *right now* won't be reflected in
                    // the next frame given that a Choreographer frame can't schedule another and
                    // have it happen in the same frame. So we post the forwarded calls to
                    // [Controller.onLaunchAnimationEnd], leaving this Choreographer frame, ensuring
                    // that the move of the content back to its original window will be reflected in
                    // the next frame right after [onLaunchAnimationEnd] is called.
                    //
                    // TODO(b/330672236): Move this to TransitionAnimator.
                    dialog.context.mainExecutor.execute {
                    startController.onTransitionAnimationEnd(isExpandingFullyAbove)
                    endController.onTransitionAnimationEnd(isExpandingFullyAbove)

                    onLaunchAnimationEnd()
                }
                }

                override fun onTransitionAnimationProgress(
                    state: TransitionAnimator.State,
+20 −7
Original line number Diff line number Diff line
@@ -357,8 +357,20 @@ class TransitionAnimator(
                        Log.d(TAG, "Animation ended")
                    }

                    // TODO(b/330672236): Post this to the main thread instead so that it does not
                    // flicker with Flexiglass enabled.
                    // onAnimationEnd is called at the end of the animation, on a Choreographer
                    // animation tick. During dialog launches, the following calls will move the
                    // animated content from the dialog overlay back to its original position, and
                    // this change must be reflected in the next frame given that we then sync the
                    // next frame of both the content and dialog ViewRoots. During SysUI activity
                    // launches, we will instantly collapse the shade at the end of the transition.
                    // However, if those are rendered by Compose, whose compositions are also
                    // scheduled on a Choreographer frame, any state change made *right now* won't
                    // be reflected in the next frame given that a Choreographer frame can't
                    // schedule another and have it happen in the same frame. So we post the
                    // forwarded calls to [Controller.onLaunchAnimationEnd] in the main executor,
                    // leaving this Choreographer frame, ensuring that any state change applied by
                    // onTransitionAnimationEnd() will be reflected in the same frame.
                    mainExecutor.execute {
                        controller.onTransitionAnimationEnd(isExpandingFullyAbove)
                        transitionContainerOverlay.remove(windowBackgroundLayer)

@@ -367,6 +379,7 @@ class TransitionAnimator(
                        }
                    }
                }
            }
        )

        animator.addUpdateListener { animation ->