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

Commit 4dfda85f authored by Vinit Nayak's avatar Vinit Nayak Committed by Android (Google) Code Review
Browse files

Merge "Revert^2 "Launch split tasks at beginning of animation instead of the end"" into 24D1-dev

parents edc8a0a9 242b67ed
Loading
Loading
Loading
Loading
+1 −5
Original line number Diff line number Diff line
@@ -217,11 +217,7 @@ public class LauncherTaskbarUIController extends TaskbarUIController {
        }

        mTaskbarLauncherStateController.updateStateForFlag(FLAG_VISIBLE, isVisible);
        // TODO(b/308851855): Skip animation for launching split from home, will refine later
        boolean skipAnimForSplit = enableSplitContextually() &&
                mLauncher.areBothSplitAppsConfirmed() &&
                mLauncher.getStateManager().getState() == LauncherState.NORMAL;
        if (skipAnimForSplit || fromInit) {
        if (fromInit) {
            duration = 0;
        }
        return mTaskbarLauncherStateController.applyState(duration, startAnimation);
+20 −14
Original line number Diff line number Diff line
@@ -928,11 +928,30 @@ class SplitAnimationController(val splitSelectStateController: SplitSelectStateC
            }
        }

        if (splitRoot1 != null) {
            // Set the highest level split root alpha; we could technically use the parent of
            // either splitRoot1 or splitRoot2
            val parentToken = splitRoot1.parent
            var rootLayer: Change? = null
            if (parentToken != null) {
                rootLayer = transitionInfo.getChange(parentToken)
            }
            if (rootLayer != null && rootLayer.leash != null) {
                openingTargets.add(rootLayer.leash)
            }
        }

        val animTransaction = Transaction()
        val animator = ValueAnimator.ofFloat(0f, 1f)
        animator.setDuration(QuickstepTransitionManager.SPLIT_LAUNCH_DURATION.toLong())
        animator.addUpdateListener { valueAnimator: ValueAnimator ->
            val progress = valueAnimator.animatedFraction
            val progress =
                    Interpolators.clampToProgress(
                            Interpolators.LINEAR,
                            valueAnimator.animatedFraction,
                            0.8f,
                            1f
                    )
            for (leash in openingTargets) {
                animTransaction.setAlpha(leash, progress)
            }
@@ -954,19 +973,6 @@ class SplitAnimationController(val splitSelectStateController: SplitSelectStateC
            }
        )

        if (splitRoot1 != null) {
            // Set the highest level split root alpha; we could technically use the parent of
            // either splitRoot1 or splitRoot2
            val parentToken = splitRoot1.parent
            var rootLayer: Change? = null
            if (parentToken != null) {
                rootLayer = transitionInfo.getChange(parentToken)
            }
            if (rootLayer != null && rootLayer.leash != null) {
                t.setAlpha(rootLayer.leash, 1f)
            }
        }

        t.apply()
        animator.start()
    }
+5 −1
Original line number Diff line number Diff line
@@ -176,6 +176,11 @@ public class SplitToWorkspaceController {
        pendingAnimation.addListener(new AnimatorListenerAdapter() {
            private boolean mIsCancelled = false;

            @Override
            public void onAnimationStart(Animator animation) {
                mController.launchSplitTasks(aBoolean -> cleanUp());
            }

            @Override
            public void onAnimationCancel(Animator animation) {
                mIsCancelled = true;
@@ -185,7 +190,6 @@ public class SplitToWorkspaceController {
            @Override
            public void onAnimationEnd(Animator animation) {
                if (!mIsCancelled) {
                    mController.launchSplitTasks(aBoolean -> cleanUp());
                    InteractionJankMonitorWrapper.end(Cuj.CUJ_SPLIT_SCREEN_ENTER);
                }
            }