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

Commit fb2086bb authored by Louis Chang's avatar Louis Chang Committed by Android (Google) Code Review
Browse files

Merge "Fix no recents animations after unify"

parents 76e56e40 040e3678
Loading
Loading
Loading
Loading
+15 −15
Original line number Diff line number Diff line
@@ -974,6 +974,7 @@ public class WindowManagerService extends IWindowManager.Stub
            Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
        }
    }

    /** Listener to notify activity manager about app transitions. */
    final WindowManagerInternal.AppTransitionListener mActivityManagerAppTransitionNotifier
            = new WindowManagerInternal.AppTransitionListener() {
@@ -990,7 +991,13 @@ public class WindowManagerService extends IWindowManager.Stub
            if (atoken == null) {
                return;
            }
            if (atoken.mLaunchTaskBehind) {

            // While running a recents animation, this will get called early because we show the
            // recents animation target activity immediately when the animation starts. Defer the
            // mLaunchTaskBehind updates until recents animation finishes.
            final boolean isRecentsAnimationTarget = getRecentsAnimationController() != null
                    && getRecentsAnimationController().isTargetApp(atoken);
            if (atoken.mLaunchTaskBehind && !isRecentsAnimationTarget) {
                try {
                    mActivityTaskManager.notifyLaunchTaskBehindComplete(atoken.token);
                } catch (RemoteException e) {
@@ -998,15 +1005,9 @@ public class WindowManagerService extends IWindowManager.Stub
                atoken.mLaunchTaskBehind = false;
            } else {
                atoken.updateReportedVisibilityLocked();
                if (atoken.mEnteringAnimation) {
                    if (getRecentsAnimationController() != null
                            && getRecentsAnimationController().isTargetApp(atoken)) {
                        // Currently running a recents animation, this will get called early because
                        // we show the recents animation target activity immediately when the
                        // animation starts. In this case, we should defer sending the finished
                        // callback until the animation successfully finishes
                        return;
                    } else {
                // We should also defer sending the finished callback until the recents animation
                // successfully finishes.
                if (atoken.mEnteringAnimation && !isRecentsAnimationTarget) {
                    atoken.mEnteringAnimation = false;
                    try {
                        mActivityTaskManager.notifyEnterAnimationComplete(atoken.token);
@@ -1015,7 +1016,6 @@ public class WindowManagerService extends IWindowManager.Stub
                }
            }
        }
        }
    };

    final ArrayList<AppFreezeListener> mAppFreezeListeners = new ArrayList<>();