From ad287d075b9093920ddef953f4a4deeca06d3d18 Mon Sep 17 00:00:00 2001 From: Issei Suzuki Date: Thu, 31 Oct 2019 16:19:44 +0100 Subject: [PATCH] Override getAnimationFrames in Task and TaskStack. Bug: 142617871 Bug: 131661052 Test: test app to apply animation on TaskStack. Change-Id: I83d0bbb7db72a497e83dff04c55a8ca26746adbf --- services/core/java/com/android/server/wm/Task.java | 11 +++++++++++ .../core/java/com/android/server/wm/TaskStack.java | 11 +++++++++++ 2 files changed, 22 insertions(+) diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java index 92ff2dc96ab3f..634990b5fdf2c 100644 --- a/services/core/java/com/android/server/wm/Task.java +++ b/services/core/java/com/android/server/wm/Task.java @@ -471,6 +471,17 @@ class Task extends WindowContainer implements ConfigurationConta } } + @Override + void getAnimationFrames(Rect outFrame, Rect outInsets, Rect outStableInsets, + Rect outSurfaceInsets) { + final WindowState windowState = getTopVisibleAppMainWindow(); + if (windowState != null) { + windowState.getAnimationFrames(outFrame, outInsets, outStableInsets, outSurfaceInsets); + } else { + super.getAnimationFrames(outFrame, outInsets, outStableInsets, outSurfaceInsets); + } + } + /** * Calculate the maximum visible area of this task. If the task has only one app, * the result will be visible frame of that app. If the task has more than one apps, diff --git a/services/core/java/com/android/server/wm/TaskStack.java b/services/core/java/com/android/server/wm/TaskStack.java index 8f8c7e7caac62..56211e25f4212 100644 --- a/services/core/java/com/android/server/wm/TaskStack.java +++ b/services/core/java/com/android/server/wm/TaskStack.java @@ -1870,6 +1870,17 @@ public class TaskStack extends WindowContainer implements return mAnimatingActivityRegistry; } + @Override + void getAnimationFrames(Rect outFrame, Rect outInsets, Rect outStableInsets, + Rect outSurfaceInsets) { + final Task task = getTopChild(); + if (task != null) { + task.getAnimationFrames(outFrame, outInsets, outStableInsets, outSurfaceInsets); + } else { + super.getAnimationFrames(outFrame, outInsets, outStableInsets, outSurfaceInsets); + } + } + @Override RemoteAnimationTarget createRemoteAnimationTarget( RemoteAnimationController.RemoteAnimationRecord record) {