From 2fb815b2fdf632b2fe2014fa9aa05f20b6c0ab9e Mon Sep 17 00:00:00 2001 From: Tony Wickham Date: Fri, 24 Sep 2021 15:37:30 -0700 Subject: [PATCH] Cleanup split screen offset in TaskViewSimulator - Removed mRunningTargetWindowPosition and mSplitOffset, as they countered each other out anyway - Removed PagedOrientationHandler#setLeashSplitOffset() since it's no longer used Test: Swipe up from split and non split apps in both orientations on large and small devices, with and without home rotation enabled Bug: 200817624 Change-Id: I78a80cbc718ee38a8933fa323798fb436710d59f --- .../quickstep/util/TaskViewSimulator.java | 23 +++++-------------- .../touch/LandscapePagedViewHandler.java | 10 -------- .../touch/PagedOrientationHandler.java | 16 ------------- .../touch/PortraitPagedViewHandler.java | 17 -------------- 4 files changed, 6 insertions(+), 60 deletions(-) diff --git a/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java b/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java index e88ebcfae8..734c844a82 100644 --- a/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java +++ b/quickstep/src/com/android/quickstep/util/TaskViewSimulator.java @@ -17,7 +17,11 @@ package com.android.quickstep.util; import static com.android.launcher3.states.RotationHelper.deltaRotation; import static com.android.launcher3.touch.PagedOrientationHandler.MATRIX_POST_TRANSLATE; -import static com.android.launcher3.util.SplitConfigurationOptions.*; +import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_BOTTOM_OR_RIGHT; +import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_TOP_OR_LEFT; +import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_UNDEFINED; +import static com.android.launcher3.util.SplitConfigurationOptions.StagePosition; +import static com.android.launcher3.util.SplitConfigurationOptions.StagedSplitBounds; import static com.android.quickstep.util.RecentsOrientedState.postDisplayRotation; import static com.android.quickstep.util.RecentsOrientedState.preDisplayRotation; import static com.android.systemui.shared.system.WindowManagerWrapper.WINDOWING_MODE_FULLSCREEN; @@ -26,7 +30,6 @@ import android.animation.TimeInterpolator; import android.content.Context; import android.content.res.Resources; import android.graphics.Matrix; -import android.graphics.Point; import android.graphics.PointF; import android.graphics.Rect; import android.graphics.RectF; @@ -56,8 +59,6 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy { private final Rect mTmpCropRect = new Rect(); private final RectF mTempRectF = new RectF(); - // Additional offset for split tasks - private final Point mSplitOffset = new Point(); private final float[] mTempPoint = new float[2]; private final Context mContext; @@ -75,7 +76,6 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy { private final Matrix mMatrix = new Matrix(); private final Matrix mMatrixTmp = new Matrix(); - private final Point mRunningTargetWindowPosition = new Point(); // Thumbnail view properties private final Rect mThumbnailPosition = new Rect(); @@ -159,8 +159,6 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy { */ public void setPreview(RemoteAnimationTargetCompat runningTarget) { setPreviewBounds(runningTarget.screenSpaceBounds, runningTarget.contentInsets); - mRunningTargetWindowPosition.set(runningTarget.screenSpaceBounds.left, - runningTarget.screenSpaceBounds.top); } /** @@ -261,9 +259,6 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy { mOrientationState.getRecentsActivityRotation(), mOrientationState.getDisplayRotation()), mDp.widthPx, mDp.heightPx, matrix); - matrix.postTranslate(-mRunningTargetWindowPosition.x, -mRunningTargetWindowPosition.y); - // Move lower/right split window into correct position - matrix.postTranslate(mSplitOffset.x, mSplitOffset.y); } /** @@ -280,11 +275,6 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy { getFullScreenScale(); mThumbnailData.rotation = mOrientationState.getDisplayRotation(); - if (mStagedSplitBounds != null) { - mOrientationState.getOrientationHandler().setLeashSplitOffset(mSplitOffset, mDp, - mStagedSplitBounds, mStagePosition); - } - // mIsRecentsRtl is the inverse of TaskView RTL. boolean isRtlEnabled = !mIsRecentsRtl; mPositionHelper.updateThumbnailMatrix( @@ -293,7 +283,7 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy { mDp, mOrientationState.getRecentsActivityRotation(), isRtlEnabled); mPositionHelper.getMatrix().invert(mInversePositionMatrix); if (DEBUG) { - Log.d(TAG, " taskRect: " + mTaskRect + " splitOffset: " + mSplitOffset); + Log.d(TAG, " taskRect: " + mTaskRect); } } @@ -344,7 +334,6 @@ public class TaskViewSimulator implements TransformParams.BuilderProxy { + " recentsViewScale: " + recentsViewScale.value + " crop: " + mTmpCropRect + " radius: " + getCurrentCornerRadius() - + " translate: " + mSplitOffset + " taskW: " + taskWidth + " H: " + taskHeight + " taskRect: " + mTaskRect + " taskPrimaryT: " + taskPrimaryTranslation.value diff --git a/src/com/android/launcher3/touch/LandscapePagedViewHandler.java b/src/com/android/launcher3/touch/LandscapePagedViewHandler.java index 3ac25f2e02..a190f529b1 100644 --- a/src/com/android/launcher3/touch/LandscapePagedViewHandler.java +++ b/src/com/android/launcher3/touch/LandscapePagedViewHandler.java @@ -31,7 +31,6 @@ import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITIO import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_TYPE_MAIN; import android.content.res.Resources; -import android.graphics.Point; import android.graphics.PointF; import android.graphics.Rect; import android.graphics.RectF; @@ -388,15 +387,6 @@ public class LandscapePagedViewHandler implements PagedOrientationHandler { } } - @Override - public void setLeashSplitOffset(Point splitOffset, DeviceProfile dp, - StagedSplitBounds splitInfo, int desiredStagePosition) { - if (desiredStagePosition == STAGE_POSITION_BOTTOM_OR_RIGHT) { - // The preview set is for the bottom/right, inset by top/left task - splitOffset.x = splitInfo.leftTopBounds.width() + splitInfo.visualDividerBounds.width(); - } - } - @Override public void measureGroupedTaskViewThumbnailBounds(View primarySnapshot, View secondarySnapshot, int parentWidth, int parentHeight, diff --git a/src/com/android/launcher3/touch/PagedOrientationHandler.java b/src/com/android/launcher3/touch/PagedOrientationHandler.java index 19d73a88ac..8112afd8c0 100644 --- a/src/com/android/launcher3/touch/PagedOrientationHandler.java +++ b/src/com/android/launcher3/touch/PagedOrientationHandler.java @@ -19,7 +19,6 @@ package com.android.launcher3.touch; import android.content.res.Resources; import android.graphics.Canvas; import android.graphics.Matrix; -import android.graphics.Point; import android.graphics.PointF; import android.graphics.Rect; import android.graphics.RectF; @@ -146,21 +145,6 @@ public interface PagedOrientationHandler { StagedSplitBounds splitInfo, @SplitConfigurationOptions.StagePosition int desiredStagePosition); - /** - * It's important to note that {@link #setSplitTaskSwipeRect(DeviceProfile, Rect, - * StagedSplitBounds, int)} above operates on the outRect based on - * launcher's coordinate system, meaning it will treat the outRect as portrait if home rotation - * is not allowed. - * - * However, here the splitOffset is from perspective of TaskViewSimulator, which is in display - * orientation coordinates. So, for example, for the fake landscape scenario, even though - * launcher is portrait, we inset the bottom/right task by an X coordinate instead of the - * usual Y - */ - void setLeashSplitOffset(Point splitOffset, DeviceProfile dp, - StagedSplitBounds splitInfo, - @SplitConfigurationOptions.StagePosition int desiredStagePosition); - void measureGroupedTaskViewThumbnailBounds(View primarySnapshot, View secondarySnapshot, int parentWidth, int parentHeight, SplitConfigurationOptions.StagedSplitBounds splitBoundsConfig, DeviceProfile dp); diff --git a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java index 1b8ebd8b3c..576c6f5615 100644 --- a/src/com/android/launcher3/touch/PortraitPagedViewHandler.java +++ b/src/com/android/launcher3/touch/PortraitPagedViewHandler.java @@ -31,7 +31,6 @@ import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_TYPE_MA import android.content.res.Resources; import android.graphics.Matrix; -import android.graphics.Point; import android.graphics.PointF; import android.graphics.Rect; import android.graphics.RectF; @@ -475,22 +474,6 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler { } } - @Override - public void setLeashSplitOffset(Point splitOffset, DeviceProfile dp, - StagedSplitBounds splitInfo, int desiredStagePosition) { - if (desiredStagePosition == STAGE_POSITION_BOTTOM_OR_RIGHT) { - if (dp.isLandscape) { - splitOffset.x = splitInfo.leftTopBounds.width() + - splitInfo.visualDividerBounds.width(); - splitOffset.y = 0; - } else { - splitOffset.y = splitInfo.leftTopBounds.height() + - splitInfo.visualDividerBounds.height(); - splitOffset.x = 0; - } - } - } - @Override public void measureGroupedTaskViewThumbnailBounds(View primarySnapshot, View secondarySnapshot, int parentWidth, int parentHeight,