Merge "Don't draw task insets or corners in multi window mode" into ub-launcher3-qt-dev
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/util/ClipAnimationHelper.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/util/ClipAnimationHelper.java
index cb2bf1f..3109921 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/util/ClipAnimationHelper.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/util/ClipAnimationHelper.java
@@ -31,11 +31,12 @@
 import android.os.Build;
 import android.os.RemoteException;
 
+import androidx.annotation.Nullable;
+
 import com.android.launcher3.BaseDraggingActivity;
 import com.android.launcher3.DeviceProfile;
 import com.android.launcher3.R;
 import com.android.launcher3.Utilities;
-import com.android.launcher3.util.Themes;
 import com.android.launcher3.views.BaseDragLayer;
 import com.android.quickstep.RecentsModel;
 import com.android.quickstep.views.RecentsView;
@@ -50,8 +51,6 @@
 
 import java.util.function.BiFunction;
 
-import androidx.annotation.Nullable;
-
 /**
  * Utility class to handle window clip animation
  */
@@ -327,12 +326,14 @@
 
         float scale = mTargetRect.width() / mSourceRect.width();
         float insetProgress = (1 - progress);
+        float windowCornerRadius = mUseRoundedCornersOnWindows
+                ? mWindowCornerRadius : 0;
         ttv.drawOnCanvas(canvas,
                 -mSourceWindowClipInsets.left * insetProgress,
                 -mSourceWindowClipInsets.top * insetProgress,
                 ttv.getMeasuredWidth() + mSourceWindowClipInsets.right * insetProgress,
                 ttv.getMeasuredHeight() + mSourceWindowClipInsets.bottom * insetProgress,
-                Utilities.mapRange(progress, mWindowCornerRadius * scale, ttv.getCornerRadius()));
+                Utilities.mapRange(progress, windowCornerRadius * scale, ttv.getCornerRadius()));
     }
 
     public RectF getTargetRect() {
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/util/TaskViewDrawable.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/util/TaskViewDrawable.java
index 2ac61c5..bb41e5d 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/util/TaskViewDrawable.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/util/TaskViewDrawable.java
@@ -25,6 +25,7 @@
 import android.util.FloatProperty;
 import android.view.View;
 
+import com.android.launcher3.BaseActivity;
 import com.android.launcher3.Utilities;
 import com.android.quickstep.views.RecentsView;
 import com.android.quickstep.views.TaskThumbnailView;
@@ -75,6 +76,8 @@
         mThumbnailView = tv.getThumbnail();
         mClipAnimationHelper = new ClipAnimationHelper(parent.getContext());
         mClipAnimationHelper.fromTaskThumbnailView(mThumbnailView, parent);
+        mClipAnimationHelper.prepareAnimation(
+                BaseActivity.fromContext(tv.getContext()).getDeviceProfile(), true /* isOpening */);
     }
 
     public void setProgress(float progress) {
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskThumbnailView.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskThumbnailView.java
index 1117855..9af599b 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskThumbnailView.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskThumbnailView.java
@@ -210,9 +210,9 @@
                 mCurrentDrawnCornerRadius);
     }
 
-    public Rect getInsetsToDrawInFullscreen() {
-        // Don't show insets in the wrong orientation.
-        return mIsRotated ? EMPTY_RECT : mScaledInsets;
+    public Rect getInsetsToDrawInFullscreen(boolean isMultiWindowMode) {
+        // Don't show insets in the wrong orientation or in multi window mode.
+        return mIsRotated || isMultiWindowMode ? EMPTY_RECT : mScaledInsets;
     }
 
     public void setCurrentDrawnInsetsAndRadius(Rect insets, float radius) {
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java
index c448f7a..6cd46d9 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/views/TaskView.java
@@ -17,7 +17,7 @@
 package com.android.quickstep.views;
 
 import static android.widget.Toast.LENGTH_SHORT;
-import static com.android.launcher3.BaseActivity.fromContext;
+
 import static com.android.launcher3.QuickstepAppTransitionManagerImpl.RECENTS_LAUNCH_DURATION;
 import static com.android.launcher3.anim.Interpolators.FAST_OUT_SLOW_IN;
 import static com.android.launcher3.anim.Interpolators.LINEAR;
@@ -167,8 +167,9 @@
     private float mZoomScale;
     private float mFullscreenProgress;
     private final Rect mCurrentDrawnInsets = new Rect();
-    private float mCornerRadius;
-    private float mWindowCornerRadius;
+    private final float mCornerRadius;
+    private final float mWindowCornerRadius;
+    private final BaseDraggingActivity mActivity;
 
     private ObjectAnimator mIconAndDimAnimator;
     private float mIconScaleAnimStartProgress = 0;
@@ -190,6 +191,7 @@
 
     public TaskView(Context context, AttributeSet attrs, int defStyleAttr) {
         super(context, attrs, defStyleAttr);
+        mActivity = BaseDraggingActivity.fromContext(context);
         setOnClickListener((view) -> {
             if (getTask() == null) {
                 return;
@@ -204,10 +206,10 @@
                 launchTask(true /* animate */);
             }
 
-            fromContext(context).getUserEventDispatcher().logTaskLaunchOrDismiss(
+            mActivity.getUserEventDispatcher().logTaskLaunchOrDismiss(
                     Touch.TAP, Direction.NONE, getRecentsView().indexOfChild(this),
                     TaskUtils.getLaunchComponentKeyForTask(getTask().key));
-            fromContext(context).getStatsLogManager().logTaskLaunch(getRecentsView(),
+            mActivity.getStatsLogManager().logTaskLaunch(getRecentsView(),
                     TaskUtils.getLaunchComponentKeyForTask(getTask().key));
         });
         mCornerRadius = TaskCornerRadius.get(context);
@@ -306,8 +308,7 @@
         if (mTask != null) {
             final ActivityOptions opts;
             if (animate) {
-                opts = ((BaseDraggingActivity) fromContext(getContext()))
-                        .getActivityLaunchOptions(this);
+                opts = mActivity.getActivityLaunchOptions(this);
                 if (freezeTaskList) {
                     ActivityOptionsCompat.setFreezeRecentTasksList(opts);
                 }
@@ -571,13 +572,12 @@
                         getContext().getText(R.string.accessibility_close_task)));
 
         final Context context = getContext();
-        final BaseDraggingActivity activity = fromContext(context);
         final List<TaskSystemShortcut> shortcuts =
                 mSnapshotView.getTaskOverlay().getEnabledShortcuts(this);
         final int count = shortcuts.size();
         for (int i = 0; i < count; ++i) {
             final TaskSystemShortcut menuOption = shortcuts.get(i);
-            OnClickListener onClickListener = menuOption.getOnClickListener(activity, this);
+            OnClickListener onClickListener = menuOption.getOnClickListener(mActivity, this);
             if (onClickListener != null) {
                 info.addAction(menuOption.createAccessibilityAction(context));
             }
@@ -617,8 +617,7 @@
         for (int i = 0; i < count; ++i) {
             final TaskSystemShortcut menuOption = shortcuts.get(i);
             if (menuOption.hasHandlerForAction(action)) {
-                OnClickListener onClickListener = menuOption.getOnClickListener(
-                        fromContext(getContext()), this);
+                OnClickListener onClickListener = menuOption.getOnClickListener(mActivity, this);
                 if (onClickListener != null) {
                     onClickListener.onClick(this);
                 }
@@ -658,13 +657,15 @@
         setClipToPadding(!isFullscreen);
 
         TaskThumbnailView thumbnail = getThumbnail();
-        Rect insets = thumbnail.getInsetsToDrawInFullscreen();
+        boolean isMultiWindowMode = mActivity.getDeviceProfile().isMultiWindowMode;
+        Rect insets = thumbnail.getInsetsToDrawInFullscreen(isMultiWindowMode);
         mCurrentDrawnInsets.set((int) (insets.left * mFullscreenProgress),
                 (int) (insets.top * mFullscreenProgress),
                 (int) (insets.right * mFullscreenProgress),
                 (int) (insets.bottom * mFullscreenProgress));
+        float fullscreenCornerRadius = isMultiWindowMode ? 0 : mWindowCornerRadius;
         float cornerRadius = Utilities.mapRange(mFullscreenProgress, mCornerRadius,
-                mWindowCornerRadius) / getRecentsView().getScaleX();
+                fullscreenCornerRadius) / getRecentsView().getScaleX();
 
         thumbnail.setCurrentDrawnInsetsAndRadius(mCurrentDrawnInsets, cornerRadius);
         mOutlineProvider.setCurrentDrawnInsetsAndRadius(mCurrentDrawnInsets, cornerRadius);