Merge "Use splitscreen insets for multiwindow, else use thumbnail insets" into ub-launcher3-rvc-dev
diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/util/TaskViewSimulator.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/util/TaskViewSimulator.java
index 348c22d..ca7d584 100644
--- a/quickstep/recents_ui_overrides/src/com/android/quickstep/util/TaskViewSimulator.java
+++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/util/TaskViewSimulator.java
@@ -65,7 +65,7 @@
// Thumbnail view properties
private final Rect mThumbnailPosition = new Rect();
private final ThumbnailData mThumbnailData = new ThumbnailData();
- private final PreviewPositionHelper mPositionHelper = new PreviewPositionHelper();
+ private final PreviewPositionHelper mPositionHelper;
private final Matrix mInversePositionMatrix = new Matrix();
// TaskView properties
@@ -87,6 +87,7 @@
mSizeStrategy = sizeStrategy;
mOrientationState = new RecentsOrientedState(context, sizeStrategy, i -> { });
+ mPositionHelper = new PreviewPositionHelper(mContext);
mCurrentFullscreenParams = new FullscreenDrawParams(context);
mPageSpacing = context.getResources().getDimensionPixelSize(R.dimen.recents_page_spacing);
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 e3c1b42..d1328a2 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
@@ -49,6 +49,7 @@
import com.android.launcher3.util.Themes;
import com.android.quickstep.TaskOverlayFactory;
import com.android.quickstep.TaskOverlayFactory.TaskOverlay;
+import com.android.quickstep.util.SplitScreenBounds;
import com.android.quickstep.views.TaskView.FullscreenDrawParams;
import com.android.systemui.plugins.OverviewScreenshotActions;
import com.android.systemui.plugins.PluginListener;
@@ -90,7 +91,7 @@
// Contains the portion of the thumbnail that is clipped when fullscreen progress = 0.
private final Rect mPreviewRect = new Rect();
- private final PreviewPositionHelper mPreviewPositionHelper = new PreviewPositionHelper();
+ private final PreviewPositionHelper mPreviewPositionHelper;
// Initialize with dummy value. It is overridden later by TaskView
private TaskView.FullscreenDrawParams mFullscreenParams = TEMP_PARAMS;
@@ -122,6 +123,7 @@
mDimmingPaintAfterClearing.setColor(Color.BLACK);
mActivity = BaseActivity.fromContext(context);
mIsDarkTextTheme = Themes.getAttrBoolean(mActivity, R.attr.isWorkspaceDarkText);
+ mPreviewPositionHelper = new PreviewPositionHelper(context);
}
/**
@@ -413,12 +415,17 @@
*/
public static class PreviewPositionHelper {
+ private final Context mContext;
// Contains the portion of the thumbnail that is clipped when fullscreen progress = 0.
private final RectF mClippedInsets = new RectF();
private final Matrix mMatrix = new Matrix();
private float mClipBottom = -1;
private boolean mIsOrientationChanged;
+ public PreviewPositionHelper(Context context) {
+ mContext = context;
+ }
+
public Matrix getMatrix() {
return mMatrix;
}
@@ -444,7 +451,6 @@
int thumbnailRotation = thumbnailData.rotation;
int deltaRotate = getRotationDelta(currentRotation, thumbnailRotation);
- Rect deviceInsets = dp.getInsets();
// Landscape vs portrait change
boolean windowingModeSupportsRotation = !dp.isMultiWindowMode
&& thumbnailData.windowingMode == WINDOWING_MODE_FULLSCREEN;
@@ -463,9 +469,17 @@
: canvasWidth / thumbnailWidth;
}
+ Rect splitScreenInsets = SplitScreenBounds.INSTANCE.getSecondaryWindowBounds(mContext)
+ .insets;
if (!isRotated) {
// No Rotation
- mClippedInsets.offsetTo(deviceInsets.left * scale, deviceInsets.top * scale);
+ if (dp.isMultiWindowMode) {
+ mClippedInsets.offsetTo(splitScreenInsets.left * scale,
+ splitScreenInsets.top * scale);
+ } else {
+ mClippedInsets.offsetTo(thumbnailInsets.left * scale,
+ thumbnailInsets.top * scale);
+ }
mMatrix.setTranslate(
-thumbnailInsets.left * scale,
-thumbnailInsets.top * scale);
@@ -486,8 +500,8 @@
mClippedInsets.top *= thumbnailScale;
if (dp.isMultiWindowMode) {
- mClippedInsets.right = deviceInsets.right * scale * thumbnailScale;
- mClippedInsets.bottom = deviceInsets.bottom * scale * thumbnailScale;
+ mClippedInsets.right = splitScreenInsets.right * scale * thumbnailScale;
+ mClippedInsets.bottom = splitScreenInsets.bottom * scale * thumbnailScale;
} else {
mClippedInsets.right = Math.max(0,
widthWithInsets - mClippedInsets.left - canvasWidth);