Handle content insets for snapshots

Pass information about content insets of a snapshotted task to
SystemUI and use it there to correctly offset the snapshot
when drawing.

Test: Open app, go to recents, make sure app aligns before
and after the animation.
Bug: 31339431
Change-Id: I2ff9bd44534bd8f66b591385da1e1e3aec40b6c5
diff --git a/services/core/java/com/android/server/wm/AppWindowContainerController.java b/services/core/java/com/android/server/wm/AppWindowContainerController.java
index 4dbe35f..1eb74fa4 100644
--- a/services/core/java/com/android/server/wm/AppWindowContainerController.java
+++ b/services/core/java/com/android/server/wm/AppWindowContainerController.java
@@ -28,10 +28,10 @@
 import static com.android.server.wm.WindowManagerDebugConfig.DEBUG_VISIBILITY;
 import static com.android.server.wm.WindowManagerDebugConfig.TAG_WM;
 
+import android.app.ActivityManager.TaskSnapshot;
 import android.content.res.CompatibilityInfo;
 import android.content.res.Configuration;
 import android.graphics.Bitmap;
-import android.graphics.GraphicBuffer;
 import android.os.Debug;
 import android.os.Handler;
 import android.os.IBinder;
@@ -489,14 +489,15 @@
     }
 
     private boolean createSnapshot() {
-        final GraphicBuffer snapshot = mService.mTaskSnapshotController.getSnapshot(
+        final TaskSnapshot snapshot = mService.mTaskSnapshotController.getSnapshot(
                 mContainer.mTask);
 
         if (snapshot == null) {
             return false;
         }
 
-        mContainer.startingData = new SnapshotStartingData(mService, mContainer, snapshot);
+        mContainer.startingData = new SnapshotStartingData(mService, mContainer,
+                snapshot.getSnapshot());
         scheduleAddStartingWindow();
         return true;
     }