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

Commit 09eac84a authored by Issei Suzuki's avatar Issei Suzuki Committed by Automerger Merge Worker
Browse files

Merge "Fix blocking task switch when 3P launcher is used." into tm-qpr-dev am:...

Merge "Fix blocking task switch when 3P launcher is used." into tm-qpr-dev am: b7b84320 am: 9a4eb43b

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



Change-Id: I950f018e551ad5bab2868be5f3ad8235378810f6
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents fcf754df 9a4eb43b
Loading
Loading
Loading
Loading
+11 −1
Original line number Original line Diff line number Diff line
@@ -1212,13 +1212,23 @@ public class AppTransitionController {
                    "Delaying app transition for screen rotation animation to finish");
                    "Delaying app transition for screen rotation animation to finish");
            return false;
            return false;
        }
        }
        final boolean isRecentsInOpening = mDisplayContent.mOpeningApps.stream().anyMatch(
                ConfigurationContainer::isActivityTypeRecents);
        for (int i = 0; i < apps.size(); i++) {
        for (int i = 0; i < apps.size(); i++) {
            WindowContainer wc = apps.valueAt(i);
            WindowContainer wc = apps.valueAt(i);
            final ActivityRecord activity = getAppFromContainer(wc);
            final ActivityRecord activity = getAppFromContainer(wc);
            if (activity == null) {
            if (activity == null) {
                continue;
                continue;
            }
            }
            if (activity.isAnimating(PARENTS, ANIMATION_TYPE_RECENTS)) {
            // In order to avoid visual clutter caused by a conflict between app transition
            // animation and recents animation, app transition is delayed until recents finishes.
            // One exceptional case. When 3P launcher is used and a user taps a task screenshot in
            // task switcher (isRecentsInOpening=true), app transition must start even though
            // recents is running. Otherwise app transition is blocked until timeout (b/232984498).
            // When 1P launcher is used, this animation is controlled by the launcher outside of
            // the app transition, so delaying app transition doesn't cause visible delay. After
            // recents finishes, app transition is handled just to commit visibility on apps.
            if (!isRecentsInOpening && activity.isAnimating(PARENTS, ANIMATION_TYPE_RECENTS)) {
                ProtoLog.v(WM_DEBUG_APP_TRANSITIONS,
                ProtoLog.v(WM_DEBUG_APP_TRANSITIONS,
                        "Delaying app transition for recents animation to finish");
                        "Delaying app transition for recents animation to finish");
                return false;
                return false;