Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2fb815b2 authored by Tony Wickham's avatar Tony Wickham
Browse files

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
parent 9a0d98f4
Loading
Loading
Loading
Loading
+6 −17
Original line number Diff line number Diff line
@@ -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
+0 −10
Original line number Diff line number Diff line
@@ -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,
+0 −16
Original line number Diff line number Diff line
@@ -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);
+0 −17
Original line number Diff line number Diff line
@@ -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,