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

Commit ba747b6f authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Skip Launcher opening animation if its not in the set of opening apps."...

Merge "Skip Launcher opening animation if its not in the set of opening apps." into ub-launcher3-master
parents aefd0621 39552b83
Loading
Loading
Loading
Loading
+18 −4
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import static com.android.launcher3.allapps.AllAppsTransitionController.ALL_APPS
import static com.android.systemui.shared.recents.utilities.Utilities.getNextFrameNumber;
import static com.android.systemui.shared.recents.utilities.Utilities.getSurface;
import static com.android.systemui.shared.recents.utilities.Utilities.postAtFrontOfQueueAsynchronously;
import static com.android.systemui.shared.system.RemoteAnimationTargetCompat.MODE_OPENING;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
@@ -530,7 +531,7 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag

                TransactionCompat t = new TransactionCompat();
                for (RemoteAnimationTargetCompat target : targets) {
                    if (target.mode == RemoteAnimationTargetCompat.MODE_OPENING) {
                    if (target.mode == MODE_OPENING) {
                        t.setAlpha(target.leash, alpha);

                        // TODO: This isn't correct at the beginning of the animation, but better
@@ -573,6 +574,16 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag
        }
    }

    private boolean isLauncherInSetOfOpeningTargets(RemoteAnimationTargetCompat[] targets) {
        int launcherTaskId = mLauncher.getTaskId();
        for (RemoteAnimationTargetCompat target : targets) {
            if (target.mode == MODE_OPENING && target.taskId == launcherTaskId) {
                return true;
            }
        }
        return false;
    }

    /**
     * @return Runner that plays when user goes to Launcher
     *         ie. pressing home, swiping up from nav bar.
@@ -584,9 +595,12 @@ public class LauncherAppTransitionManagerImpl extends LauncherAppTransitionManag
                                         Runnable finishedCallback) {
                Handler handler = mLauncher.getWindow().getDecorView().getHandler();
                postAtFrontOfQueueAsynchronously(handler, () -> {
                    if (Utilities.getPrefs(mLauncher).getBoolean("pref_use_screenshot_animation",
                            true) && mLauncher.isInState(LauncherState.OVERVIEW)) {
                        // We use a separate transition for Overview mode.
                    if ((Utilities.getPrefs(mLauncher).getBoolean("pref_use_screenshot_animation",
                            true) && mLauncher.isInState(LauncherState.OVERVIEW))
                            || !isLauncherInSetOfOpeningTargets(targets)) {
                        // We use a separate transition for Overview mode. And we can skip the
                        // animation in cases where Launcher is not in the set of opening targets.
                        // This can happen when Launcher is already visible. ie. Closing a dialog.
                        setCurrentAnimator(null);
                        finishedCallback.run();
                        return;