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

Commit 2cbc0e03 authored by Vinit Nayak's avatar Vinit Nayak Committed by Automerger Merge Worker
Browse files

Merge "Limit starting bounds of swipe to animation start rect" into tm-dev am:...

Merge "Limit starting bounds of swipe to animation start rect" into tm-dev am: e8a4e0e2 am: e9e0800f am: 1eb79473

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/18607508



Change-Id: I9ceb653c6dbce157a0fb385ad281b456fa3c211d
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 731978a0 1eb79473
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -266,6 +266,13 @@ public abstract class SwipeUpAnimationLogic implements
        RectF cropRectF = new RectF(taskViewSimulator.getCurrentCropRect());
        // Move the startRect to Launcher space as floatingIconView runs in Launcher
        Matrix windowToHomePositionMap = new Matrix();

        // If the start rect ends up overshooting too much to the left/right offscreen, bring it
        // back to fullscreen. This can happen when the recentsScroll value isn't aligned with
        // the pageScroll value for a given taskView, see b/228829958#comment12
        mRemoteTargetHandles[0].getTaskViewSimulator().getOrientationState().getOrientationHandler()
                .fixBoundsForHomeAnimStartRect(startRect, mDp);

        homeToWindowPositionMap.invert(windowToHomePositionMap);
        windowToHomePositionMap.mapRect(startRect);

+11 −0
Original line number Diff line number Diff line
@@ -103,6 +103,17 @@ public class LandscapePagedViewHandler implements PagedOrientationHandler {
        velocity.set(-oldY, oldX);
    }

    @Override
    public void fixBoundsForHomeAnimStartRect(RectF outStartRect, DeviceProfile deviceProfile) {
        // We don't need to check the "top" value here because the startRect is in the orientation
        // of the app, not of the fixed portrait launcher.
        if (outStartRect.left > deviceProfile.heightPx) {
            outStartRect.offsetTo(0, outStartRect.top);
        } else if (outStartRect.left < -deviceProfile.heightPx) {
            outStartRect.offsetTo(0, outStartRect.top);
        }
    }

    @Override
    public <T> void setPrimary(T target, Int2DAction<T> action, int param) {
        action.call(target, 0, param);
+6 −0
Original line number Diff line number Diff line
@@ -236,6 +236,12 @@ public interface PagedOrientationHandler {
     */
    void adjustFloatingIconStartVelocity(PointF velocity);

    /**
     * Ensures that outStartRect left bound is within the DeviceProfile's visual boundaries
     * @param outStartRect The start rect that will directly be modified
     */
    void fixBoundsForHomeAnimStartRect(RectF outStartRect, DeviceProfile deviceProfile);

    class ChildBounds {

        public final int primaryDimension;
+9 −0
Original line number Diff line number Diff line
@@ -104,6 +104,15 @@ public class PortraitPagedViewHandler implements PagedOrientationHandler {
        //no-op
    }

    @Override
    public void fixBoundsForHomeAnimStartRect(RectF outStartRect, DeviceProfile deviceProfile) {
        if (outStartRect.left > deviceProfile.widthPx) {
            outStartRect.offsetTo(0, outStartRect.top);
        } else if (outStartRect.left < -deviceProfile.widthPx) {
            outStartRect.offsetTo(0, outStartRect.top);
        }
    }

    @Override
    public <T> void setPrimary(T target, Int2DAction<T> action, int param) {
        action.call(target, param, 0);