diff options
| -rw-r--r-- | services/core/java/com/android/server/wm/DisplayContent.java | 6 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/TransitionController.java | 8 |
2 files changed, 13 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index a8efb1e21647..3b640d851619 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -5026,6 +5026,12 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp /** Check if pending app transition is for activity / task launch. */ boolean isNextTransitionForward() { + // TODO(b/191375840): decouple "forwardness" from transition system. + if (mAtmService.getTransitionController().isShellTransitionsEnabled()) { + @WindowManager.TransitionType int type = + mAtmService.getTransitionController().getCollectingTransitionType(); + return type == TRANSIT_OPEN || type == TRANSIT_TO_FRONT; + } return mAppTransition.containsTransitRequest(TRANSIT_OPEN) || mAppTransition.containsTransitRequest(TRANSIT_TO_FRONT); } diff --git a/services/core/java/com/android/server/wm/TransitionController.java b/services/core/java/com/android/server/wm/TransitionController.java index e480ff0c6a5b..3d7b34b0d913 100644 --- a/services/core/java/com/android/server/wm/TransitionController.java +++ b/services/core/java/com/android/server/wm/TransitionController.java @@ -23,6 +23,7 @@ import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_GOING_AWAY_SUBTLE import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_GOING_AWAY_TO_SHADE; import static android.view.WindowManager.TRANSIT_FLAG_KEYGUARD_GOING_AWAY_WITH_WALLPAPER; import static android.view.WindowManager.TRANSIT_KEYGUARD_GOING_AWAY; +import static android.view.WindowManager.TRANSIT_NONE; import static android.view.WindowManager.TRANSIT_OPEN; import android.annotation.NonNull; @@ -102,7 +103,7 @@ class TransitionController { * Creates a transition. It can immediately collect participants. */ @NonNull - Transition createTransition(@WindowManager.TransitionType int type, + private Transition createTransition(@WindowManager.TransitionType int type, @WindowManager.TransitionFlags int flags) { if (mTransitionPlayer == null) { throw new IllegalStateException("Shell Transitions not enabled"); @@ -181,6 +182,11 @@ class TransitionController { return false; } + @WindowManager.TransitionType + int getCollectingTransitionType() { + return mCollectingTransition != null ? mCollectingTransition.mType : TRANSIT_NONE; + } + /** * @see #requestTransitionIfNeeded(int, int, WindowContainer, IRemoteTransition) */ |