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();