diff options
| author | 2024-11-14 21:04:27 +0000 | |
|---|---|---|
| committer | 2024-11-14 21:04:27 +0000 | |
| commit | 2ac7514c67a869d6ca8f9a824a720bab2cbae156 (patch) | |
| tree | 618ff88da18613782e9d588ea4e6929318a0c95a | |
| parent | f41f24f51387a130743309cda9d79d3d2625d83a (diff) | |
| parent | 8db50898b5c9e25e71ca607660ca12aed546b48c (diff) | |
Merge "Hide task surface once it goes off-screen in close animation" into main
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java index e848b889b314..2ae9828ca0db 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/freeform/FreeformTaskTransitionHandler.java @@ -254,8 +254,13 @@ public class FreeformTaskTransitionHandler finishT.hide(sc); final Rect startBounds = new Rect(change.getStartAbsBounds()); animator.addUpdateListener(animation -> { - t.setPosition(sc, startBounds.left, - startBounds.top + (animation.getAnimatedFraction() * screenHeight)); + final float newTop = startBounds.top + (animation.getAnimatedFraction() * screenHeight); + t.setPosition(sc, startBounds.left, newTop); + if (newTop > screenHeight) { + // At this point the task surface is off-screen, so hide it to prevent flicker + // failures. See b/377651666. + t.hide(sc); + } t.apply(); }); animator.addListener( |