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

Commit 17be4d2c authored by Vinit Nayak's avatar Vinit Nayak Committed by Android (Google) Code Review
Browse files

Merge "Lazy initialize split divider MotionSpec" into main

parents 5733f2c4 084ba368
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -122,8 +122,11 @@ public class DividerSnapAlgorithm {
    private final SnapTarget mDismissEndTarget;
    private final SnapTarget mMiddleTarget;

    /** A spec used for "magnetic snap" user-controlled movement. */
    private final MotionSpec mMotionSpec;
    /** A spec used for "magnetic snap" user-controlled movement. Lazy-initialized, {@code null} if
     * the flex split flag is not enabled
     */
    @Nullable
    private MotionSpec mMotionSpec;

    public DividerSnapAlgorithm(Resources res, int displayWidth, int displayHeight, int dividerSize,
            boolean isLeftRightSplit, Rect insets, Rect pinnedTaskbarInsets, int dockSide) {
@@ -177,8 +180,6 @@ public class DividerSnapAlgorithm {
        mDismissEndTarget = mTargets.get(mTargets.size() - 1);
        mMiddleTarget = mTargets.get(mTargets.size() / 2);
        mMiddleTarget.isMiddleTarget = true;
        mMotionSpec = Flags.enableFlexibleTwoAppSplit()
                ? MagneticDividerUtils.generateMotionSpec(mTargets, res) : null;
    }

    /**
@@ -556,7 +557,11 @@ public class DividerSnapAlgorithm {
        return snap(currentPosition, /* hardDismiss */ true).snapPosition;
    }

    public MotionSpec getMotionSpec() {
    @Nullable
    public MotionSpec getMotionSpec(Resources resources) {
        if (Flags.enableFlexibleTwoAppSplit() && mMotionSpec == null) {
            mMotionSpec = MagneticDividerUtils.generateMotionSpec(mTargets, resources);
        }
        return mMotionSpec;
    }

+1 −1
Original line number Diff line number Diff line
@@ -520,7 +520,7 @@ public class DividerView extends FrameLayout implements View.OnTouchListener {
                direction);
        mViewMotionValue = new ViewMotionValue(mStartPos,
                mDistanceGestureContext,
                mSplitLayout.mDividerSnapAlgorithm.getMotionSpec(),
                mSplitLayout.mDividerSnapAlgorithm.getMotionSpec(getResources()),
                "dividerView::pos" /* label */);
        mLastHoveredOverSnapPosition = mSplitLayout.calculateCurrentSnapPosition();
        // Set a "starting region" in which we don't want to show the tooltip yet.