Updating pip transition calls with shared lib

Bug: 143965596
Change-Id: I761726ca9666689d4359240b065997e3342eab65
diff --git a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
index 132f71a..a1988a1 100644
--- a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
+++ b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java
@@ -1062,8 +1062,10 @@
             mIsSwipingPipToHome = homeAnimFactory.supportSwipePipToHome()
                     && runningTaskTarget != null
                     && runningTaskTarget.pictureInPictureParams != null
-                    && runningTaskTarget.pictureInPictureParams.isAutoEnterEnabled()
-                    && runningTaskTarget.pictureInPictureParams.getSourceRectHint() != null;
+                    && TaskInfoCompat.isAutoEnterPipEnabled(
+                            runningTaskTarget.pictureInPictureParams)
+                    && TaskInfoCompat.getPipSourceRectHint(
+                            runningTaskTarget.pictureInPictureParams) != null;
             if (mIsSwipingPipToHome) {
                 mSwipePipToHomeAnimator = getSwipePipToHomeAnimator(
                         homeAnimFactory, runningTaskTarget);
@@ -1141,7 +1143,8 @@
         final ActivityManager.RunningTaskInfo taskInfo = mGestureState.getRunningTask();
         final RecentsOrientedState orientationState = mTaskViewSimulator.getOrientationState();
         final Rect destinationBounds = SystemUiProxy.INSTANCE.get(mContext)
-                .startSwipePipToHome(taskInfo.topActivity, taskInfo.topActivityInfo,
+                .startSwipePipToHome(taskInfo.topActivity,
+                        TaskInfoCompat.getTopActivityInfo(taskInfo),
                         runningTaskTarget.pictureInPictureParams,
                         orientationState.getRecentsActivityRotation(),
                         mDp.hotseatBarSizePx);
@@ -1149,8 +1152,8 @@
                 runningTaskTarget.taskId,
                 taskInfo.topActivity,
                 runningTaskTarget.leash.getSurfaceControl(),
-                runningTaskTarget.pictureInPictureParams.getSourceRectHint(),
-                taskInfo.configuration.windowConfiguration.getBounds(),
+                TaskInfoCompat.getPipSourceRectHint(runningTaskTarget.pictureInPictureParams),
+                TaskInfoCompat.getWindowConfigurationBounds(taskInfo),
                 destinationBounds);
         swipePipToHomeAnimator.addListener(new AnimatorListenerAdapter() {
             @Override
diff --git a/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java b/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java
index 02b5dfe..87fee79 100644
--- a/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java
+++ b/quickstep/src/com/android/quickstep/util/SwipePipToHomeAnimator.java
@@ -21,13 +21,13 @@
 import android.animation.RectEvaluator;
 import android.animation.ValueAnimator;
 import android.content.ComponentName;
-import android.graphics.Matrix;
 import android.graphics.Rect;
-import android.graphics.RectF;
 import android.view.SurfaceControl;
 
 import androidx.annotation.NonNull;
 
+import com.android.systemui.shared.pip.PipSurfaceTransactionHelper;
+
 /**
  * An {@link Animator} that animates an Activity to PiP (picture-in-picture) window when
  * swiping up (in gesture navigation mode). Note that this class is derived from
@@ -44,7 +44,7 @@
     private final SurfaceControl mLeash;
     private final Rect mStartBounds = new Rect();
     private final Rect mDestinationBounds = new Rect();
-    private final SurfaceTransactionHelper mSurfaceTransactionHelper;
+    private final PipSurfaceTransactionHelper mSurfaceTransactionHelper;
 
     /** for calculating the transform in {@link #onAnimationUpdate(ValueAnimator)} */
     private final RectEvaluator mRectEvaluator = new RectEvaluator(new Rect());
@@ -69,7 +69,7 @@
         mLeash = leash;
         mStartBounds.set(startBounds);
         mDestinationBounds.set(destinationBounds);
-        mSurfaceTransactionHelper = new SurfaceTransactionHelper();
+        mSurfaceTransactionHelper = new PipSurfaceTransactionHelper();
 
         mSourceHintRectInsets.set(sourceRectHint.left - startBounds.left,
                 sourceRectHint.top - startBounds.top,
@@ -95,7 +95,8 @@
                 mSourceHintRectInsets);
         final SurfaceControl.Transaction tx = new SurfaceControl.Transaction();
         mSurfaceTransactionHelper.scaleAndCrop(tx, mLeash, mStartBounds, bounds, insets);
-        tx.setCornerRadius(mLeash, 0).apply();
+        mSurfaceTransactionHelper.resetCornerRadius(tx, mLeash);
+        tx.apply();
     }
 
     public int getTaskId() {
@@ -114,49 +115,8 @@
         if (mHasAnimationEnded) return;
 
         final SurfaceControl.Transaction tx = new SurfaceControl.Transaction();
-        mSurfaceTransactionHelper.resetScale(tx, mLeash, mDestinationBounds);
-        mSurfaceTransactionHelper.crop(tx, mLeash, mDestinationBounds);
-        tx.setCornerRadius(mLeash, 0).apply();
+        mSurfaceTransactionHelper.reset(tx, mLeash, mDestinationBounds);
+        tx.apply();
         mHasAnimationEnded = true;
     }
-
-    /**
-     * Slim version of {@link com.android.wm.shell.pip.PipSurfaceTransactionHelper}
-     */
-    private static final class SurfaceTransactionHelper {
-        private final Matrix mTmpTransform = new Matrix();
-        private final float[] mTmpFloat9 = new float[9];
-        private final RectF mTmpSourceRectF = new RectF();
-        private final Rect mTmpDestinationRect = new Rect();
-
-        private void scaleAndCrop(SurfaceControl.Transaction tx, SurfaceControl leash,
-                Rect sourceBounds, Rect destinationBounds, Rect insets) {
-            mTmpSourceRectF.set(sourceBounds);
-            mTmpDestinationRect.set(sourceBounds);
-            mTmpDestinationRect.inset(insets);
-            // Scale by the shortest edge and offset such that the top/left of the scaled inset
-            // source rect aligns with the top/left of the destination bounds
-            final float scale = sourceBounds.width() <= sourceBounds.height()
-                    ? (float) destinationBounds.width() / sourceBounds.width()
-                    : (float) destinationBounds.height() / sourceBounds.height();
-            final float left = destinationBounds.left - insets.left * scale;
-            final float top = destinationBounds.top - insets.top * scale;
-            mTmpTransform.setScale(scale, scale);
-            tx.setMatrix(leash, mTmpTransform, mTmpFloat9)
-                    .setWindowCrop(leash, mTmpDestinationRect)
-                    .setPosition(leash, left, top);
-        }
-
-        private void resetScale(SurfaceControl.Transaction tx, SurfaceControl leash,
-                Rect destinationBounds) {
-            tx.setMatrix(leash, Matrix.IDENTITY_MATRIX, mTmpFloat9)
-                    .setPosition(leash, destinationBounds.left, destinationBounds.top);
-        }
-
-        private void crop(SurfaceControl.Transaction tx, SurfaceControl leash,
-                Rect destinationBounds) {
-            tx.setWindowCrop(leash, destinationBounds.width(), destinationBounds.height())
-                    .setPosition(leash, destinationBounds.left, destinationBounds.top);
-        }
-    }
 }