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

Commit 5a757ae7 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Fix shell transition for showWhenLocked + translucent activity." into...

Merge "Fix shell transition for showWhenLocked + translucent activity." into tm-qpr-dev am: 4d53dbd6 am: 3a9e12a2

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



Change-Id: I7c484bb2c9595bf084130ed65e49ae5b264fd10c
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 4a3e1f78 3a9e12a2
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -5304,10 +5304,11 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
        final boolean delayed = isAnimating(PARENTS | CHILDREN,
                ANIMATION_TYPE_APP_TRANSITION | ANIMATION_TYPE_WINDOW_ANIMATION
                        | ANIMATION_TYPE_RECENTS);
        if (!delayed && !usingShellTransitions) {
        if (!delayed) {
            // We aren't delayed anything, but exiting windows rely on the animation finished
            // callback being called in case the ActivityRecord was pretending to be delayed,
            // which we might have done because we were in closing/opening apps list.
            if (!usingShellTransitions) {
                onAnimationFinished(ANIMATION_TYPE_APP_TRANSITION, null /* AnimationAdapter */);
                if (visible) {
                    // The token was made immediately visible, there will be no entrance animation.
@@ -5316,6 +5317,10 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
                    mWmService.mActivityManagerAppTransitionNotifier.onAppTransitionFinishedLocked(
                            token);
                }
            } else {
                // update wallpaper target
                setAppLayoutChanges(FINISH_LAYOUT_REDO_WALLPAPER, "ActivityRecord");
            }
        }

        // If we're becoming visible, immediately change client visibility as well. there seem
+2 −1
Original line number Diff line number Diff line
@@ -787,7 +787,8 @@ public class DisplayPolicy {
            if (!mDisplayContent.isDefaultDisplay) {
                return;
            }
            if (mAwake) {
            if (mAwake && mDisplayContent.mTransitionController.isShellTransitionsEnabled()
                    && !mDisplayContent.mTransitionController.isCollecting()) {
                // Start a transition for waking. This is needed for showWhenLocked activities.
                mDisplayContent.mTransitionController.requestTransitionIfNeeded(TRANSIT_WAKE,
                        0 /* flags */, null /* trigger */, mDisplayContent);
+9 −0
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import static android.view.WindowManager.LayoutParams.TYPE_NOTIFICATION_SHADE;
import static android.view.WindowManager.TRANSIT_NONE;
import static android.view.WindowManager.TRANSIT_PIP;
import static android.view.WindowManager.TRANSIT_TO_BACK;
import static android.view.WindowManager.TRANSIT_WAKE;

import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_FOCUS_LIGHT;
import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_KEEP_SCREEN_ON;
@@ -2336,6 +2337,14 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
                continue;
            }

            // Prepare transition before resume top activity, so it can be collected.
            if (!displayShouldSleep && display.isDefaultDisplay
                    && !display.getDisplayPolicy().isAwake()
                    && display.mTransitionController.isShellTransitionsEnabled()
                    && !display.mTransitionController.isCollecting()) {
                display.mTransitionController.requestTransitionIfNeeded(TRANSIT_WAKE,
                        0 /* flags */, null /* trigger */, display);
            }
            // Set the sleeping state of the root tasks on the display.
            display.forAllRootTasks(rootTask -> {
                if (displayShouldSleep) {