Set crop and final crop for WindowAnimation
Added crop and final crop to WindowAnimation depending on clip mode.
Test: 1. Enter split screen by dragging app from recents.
2. In split screen, open new activities in primary window.
3. Lock screen and unlock while in split screen
Change-Id: Idc4055de8c2c9aaa449f6387097c1970ef1d94fa
diff --git a/services/core/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java
index af7523c..b24a8ca 100644
--- a/services/core/java/com/android/server/wm/AppWindowToken.java
+++ b/services/core/java/com/android/server/wm/AppWindowToken.java
@@ -222,6 +222,7 @@
private boolean mNeedsZBoost;
private final Point mTmpPoint = new Point();
+ private final Rect mTmpRect = new Rect();
AppWindowToken(WindowManagerService service, IApplicationToken token, boolean voiceInteraction,
DisplayContent dc, long inputDispatchingTimeoutNanos, boolean fullscreen,
@@ -1536,12 +1537,15 @@
if (a != null) {
final TaskStack stack = getStack();
mTmpPoint.set(0, 0);
+ mTmpRect.setEmpty();
if (stack != null) {
stack.getRelativePosition(mTmpPoint);
+ stack.getBounds(mTmpRect);
}
final AnimationAdapter adapter = new LocalAnimationAdapter(
- new WindowAnimationSpec(a, mTmpPoint,
- mService.mAppTransition.canSkipFirstFrame()),
+ new WindowAnimationSpec(a, mTmpPoint, mTmpRect,
+ mService.mAppTransition.canSkipFirstFrame(),
+ mService.mAppTransition.getAppStackClipMode()),
mService.mSurfaceAnimationRunner);
if (a.getZAdjustment() == Animation.ZORDER_TOP) {
mNeedsZBoost = true;
@@ -1549,7 +1553,6 @@
startAnimation(getPendingTransaction(), adapter, !isVisible());
mTransit = transit;
mTransitFlags = mService.mAppTransition.getTransitFlags();
- // TODO: Skip first frame and app stack clip mode.
}
} else {
cancelAnimation();