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

Commit 46936521 authored by Evan Rosky's avatar Evan Rosky Committed by Automerger Merge Worker
Browse files

Merge "Don't applyReady immediately if WCT is launching activity" into...

Merge "Don't applyReady immediately if WCT is launching activity" into udc-qpr-dev am: 4e6490ef am: 0fdd298f

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



Change-Id: I25f18c3aee13084b25f49ad64bfd5e144907e4b8
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents ee766a53 0fdd298f
Loading
Loading
Loading
Loading
+17 −0
Original line number Diff line number Diff line
@@ -309,6 +309,14 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
                                applyTransaction(wct, -1 /* syncId */, nextTransition, caller,
                                        deferred);
                                if (needsSetReady) {
                                    // TODO(b/294925498): Remove this once we have accurate ready
                                    //                    tracking.
                                    if (hasActivityLaunch(wct) && !mService.mRootWindowContainer
                                            .allPausedActivitiesComplete()) {
                                        // WCT is launching an activity, so we need to wait for its
                                        // lifecycle events.
                                        return;
                                    }
                                    nextTransition.setAllReady();
                                }
                            });
@@ -344,6 +352,15 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
        }
    }

    private static boolean hasActivityLaunch(WindowContainerTransaction wct) {
        for (int i = 0; i < wct.getHierarchyOps().size(); ++i) {
            if (wct.getHierarchyOps().get(i).getType() == HIERARCHY_OP_TYPE_LAUNCH_TASK) {
                return true;
            }
        }
        return false;
    }

    @Override
    public int startLegacyTransition(int type, @NonNull RemoteAnimationAdapter adapter,
            @NonNull IWindowContainerTransactionCallback callback,