Pinned stack animation: Fix inset logic.
When animating to the fullscreen size, we need
to immediately report insets as if we were fullscreen so that
the app will draw its content in the appropriate aspect ratio
depending on whether or not it plans to paint behind the insets.
Two things were preventing this, first the pinned stack is
skipped for temp task inset calculation, and second we were
passing null as the temp inset bounds.
Bug: 35396882
Test: Move skeleton pinned app to fullscreen. Verify no aspect jump at end.
Change-Id: I670fe9423fbde45d55b95801c6dcbad97b0280d1
diff --git a/services/core/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
index ab9a378..da5fcf3 100644
--- a/services/core/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -592,8 +592,15 @@
return mStack != null && mStack.mStackId == PINNED_STACK_ID;
}
+ /**
+ * When we are in a floating stack (Freeform, Pinned, ...) we calculate
+ * insets differently. However if we are animating to the fullscreen stack
+ * we need to begin calculating insets as if we were fullscreen, otherwise
+ * we will have a jump at the end.
+ */
boolean isFloating() {
- return StackId.tasksAreFloating(mStack.mStackId);
+ return StackId.tasksAreFloating(mStack.mStackId)
+ && !mStack.isBoundsAnimatingToFullscreen();
}
WindowState getTopVisibleAppMainWindow() {