From 8b56f198e22ade3234962470fdbc67f5e601f80e Mon Sep 17 00:00:00 2001 From: Chris Li Date: Sun, 1 Aug 2021 13:12:58 -0700 Subject: [PATCH] Call with Shell transition for TRANSIT_KEYGUARD_OCCLUDE/UNOCCLUDE Before, it only called with legacy app transition, so it sometimes missed to collect for occlude change. Also remove some duplicated prepareAppTransition call. Bug: 193564917 Test: passed KeyguardTests with Shell transition is on Change-Id: Ie5a445466f2a71fd6125af09e311ee754611e5ae --- .../java/com/android/server/wm/DisplayContent.java | 11 ++++++++++- .../com/android/server/wm/KeyguardController.java | 4 ++-- .../com/android/server/wm/RootWindowContainer.java | 1 - services/core/java/com/android/server/wm/Task.java | 2 -- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index 622cf7cd19105..35b905b3e256c 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -4984,10 +4984,18 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp } } + /** + * @deprecated new transition should use {@link #requestTransitionAndLegacyPrepare(int, int)} + */ + @Deprecated void prepareAppTransition(@WindowManager.TransitionType int transit) { prepareAppTransition(transit, 0 /* flags */); } + /** + * @deprecated new transition should use {@link #requestTransitionAndLegacyPrepare(int, int)} + */ + @Deprecated void prepareAppTransition(@WindowManager.TransitionType int transit, @WindowManager.TransitionFlags int flags) { final boolean prepared = mAppTransition.prepareAppTransition(transit, flags); @@ -5000,7 +5008,8 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp * Helper that both requests a transition (using the new transition system) and prepares * the legacy transition system. Use this when both systems have the same start-point. * - * @see TransitionController#requestTransitionIfNeeded(int, int, WindowContainer) + * @see TransitionController#requestTransitionIfNeeded(int, int, WindowContainer, + * WindowContainer) * @see AppTransition#prepareAppTransition */ void requestTransitionAndLegacyPrepare(@WindowManager.TransitionType int transit, diff --git a/services/core/java/com/android/server/wm/KeyguardController.java b/services/core/java/com/android/server/wm/KeyguardController.java index 9cd8c2d8ee538..750de3b388ddc 100644 --- a/services/core/java/com/android/server/wm/KeyguardController.java +++ b/services/core/java/com/android/server/wm/KeyguardController.java @@ -378,10 +378,10 @@ class KeyguardController { mService.deferWindowLayout(); try { mRootWindowContainer.getDefaultDisplay() - .prepareAppTransition( + .requestTransitionAndLegacyPrepare( isDisplayOccluded(DEFAULT_DISPLAY) ? TRANSIT_KEYGUARD_OCCLUDE - : TRANSIT_KEYGUARD_UNOCCLUDE); + : TRANSIT_KEYGUARD_UNOCCLUDE, 0 /* flags */); // When the occluding activity also turns on the display, visibility of the activity // can be committed before KEYGUARD_OCCLUDE transition is handled. // Set mRequestForceTransition flag to make sure that the app transition animation diff --git a/services/core/java/com/android/server/wm/RootWindowContainer.java b/services/core/java/com/android/server/wm/RootWindowContainer.java index 24c5c82ef5c65..3516c75493e29 100644 --- a/services/core/java/com/android/server/wm/RootWindowContainer.java +++ b/services/core/java/com/android/server/wm/RootWindowContainer.java @@ -2811,7 +2811,6 @@ class RootWindowContainer extends WindowContainer Slog.w(TAG, " Force finishing activity " + r.intent.getComponent().flattenToShortString()); r.detachFromProcess(); - r.mDisplayContent.prepareAppTransition(TRANSIT_CLOSE, TRANSIT_FLAG_APP_CRASHED); r.mDisplayContent.requestTransitionAndLegacyPrepare(TRANSIT_CLOSE, TRANSIT_FLAG_APP_CRASHED); r.destroyIfPossible("handleAppCrashed"); diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 2355dde0486ec..fcd8d6109377b 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -5274,7 +5274,6 @@ class Task extends TaskFragment { Slog.w(TAG, " Force finishing activity " + r.intent.getComponent().flattenToShortString()); Task finishedTask = r.getTask(); - mDisplayContent.prepareAppTransition(TRANSIT_CLOSE, TRANSIT_FLAG_APP_CRASHED); mDisplayContent.requestTransitionAndLegacyPrepare(TRANSIT_CLOSE, TRANSIT_FLAG_APP_CRASHED); r.finishIfPossible(reason, false /* oomAdj */); @@ -5654,7 +5653,6 @@ class Task extends TaskFragment { // Skip the transition for pinned task. if (!inPinnedWindowingMode()) { - mDisplayContent.prepareAppTransition(TRANSIT_TO_BACK); mDisplayContent.requestTransitionAndLegacyPrepare(TRANSIT_TO_BACK, tr); } moveToBack("moveTaskToBackLocked", tr);