From 0341dfd40ddbf20b83149d3593613e96c886f877 Mon Sep 17 00:00:00 2001 From: shawnlin Date: Thu, 20 May 2021 15:48:25 +0800 Subject: [PATCH] The nav bar isn't restored when swiping an app up to home in landscape Previously we used FadeRotateAnimationController.isTargetToken() to determine whether the FadeRotateAnimationController is controlling the nav bar or not. But this method is actually to check if the system can run the rotation animation without waiting for the given window to be drawn. Add a new method in FadeRotateAnimationController to check whether the window is controlled by the FadeRotateAnimationController. Bug: 188749233 Test: manual - swipe an app in landscape to home and observe the nav bar Change-Id: I6e79bea7d9e7e651254efe9d02b416902372f2cd --- .../core/java/com/android/server/wm/DisplayContent.java | 2 +- .../android/server/wm/FadeRotationAnimationController.java | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java index 735fae3391a2d..f44c3894beb59 100644 --- a/services/core/java/com/android/server/wm/DisplayContent.java +++ b/services/core/java/com/android/server/wm/DisplayContent.java @@ -1782,7 +1782,7 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp return false; } final FadeRotationAnimationController controller = mFadeRotationAnimationController; - return controller == null || !controller.isTargetToken(w.mToken); + return controller == null || !controller.isHandledToken(w.mToken); } void notifyInsetsChanged(Consumer dispatchInsetsChanged) { diff --git a/services/core/java/com/android/server/wm/FadeRotationAnimationController.java b/services/core/java/com/android/server/wm/FadeRotationAnimationController.java index 644256a071ff7..53b6b41db2bac 100644 --- a/services/core/java/com/android/server/wm/FadeRotationAnimationController.java +++ b/services/core/java/com/android/server/wm/FadeRotationAnimationController.java @@ -123,8 +123,13 @@ public class FadeRotationAnimationController extends FadeAnimationController { } /** Returns {@code true} if the window is handled by this controller. */ + boolean isHandledToken(WindowToken token) { + return token == mNavBarToken || isTargetToken(token); + } + + /** Returns {@code true} if the controller will run fade animations on the window. */ boolean isTargetToken(WindowToken token) { - return token == mNavBarToken || mTargetWindowTokens.contains(token); + return mTargetWindowTokens.contains(token); } void setOnShowRunnable(Runnable onShowRunnable) {