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

Commit 069dfe67 authored by Jorim Jaggi's avatar Jorim Jaggi
Browse files

Don't resize task when dismissing docked stack

Make sure to "freeze" bounds while dismissing the docked stack by
either maximizing or minimizing it.

Bug: 28196862
Change-Id: Ifcd9deda340de8bc46df949df2fa1049e2f45f92
parent 31f71705
Loading
Loading
Loading
Loading
+7 −11
Original line number Diff line number Diff line
@@ -530,16 +530,12 @@ public class DividerView extends FrameLayout implements OnTouchListener,

    private ValueAnimator getFlingAnimator(int position, final SnapTarget snapTarget,
            final long endDelay) {
        final boolean taskPositionSameAtEnd = snapTarget.flag == SnapTarget.FLAG_NONE;
        ValueAnimator anim = ValueAnimator.ofInt(position, snapTarget.position);
        anim.addUpdateListener(new AnimatorUpdateListener() {
            @Override
            public void onAnimationUpdate(ValueAnimator animation) {
                resizeStack((Integer) animation.getAnimatedValue(),
                        animation.getAnimatedFraction() == 1f
        anim.addUpdateListener(animation -> resizeStack((Integer) animation.getAnimatedValue(),
                taskPositionSameAtEnd && animation.getAnimatedFraction() == 1f
                        ? TASK_POSITION_SAME
                                : snapTarget.position, snapTarget);
            }
        });
                        : snapTarget.position, snapTarget));
        Runnable endAction = () -> {
            commitSnapFlags(snapTarget);
            mWindowManagerProxy.setResizing(false);
@@ -919,10 +915,10 @@ public class DividerView extends FrameLayout implements OnTouchListener,
    private int restrictDismissingTaskPosition(int taskPosition, int dockSide,
            SnapTarget snapTarget) {
        if (snapTarget.flag == SnapTarget.FLAG_DISMISS_START && dockSideTopLeft(dockSide)) {
            return mSnapAlgorithm.getFirstSplitTarget().position;
            return Math.max(mSnapAlgorithm.getFirstSplitTarget().position, mStartPosition);
        } else if (snapTarget.flag == SnapTarget.FLAG_DISMISS_END
                && dockSideBottomRight(dockSide)) {
            return mSnapAlgorithm.getLastSplitTarget().position;
            return Math.min(mSnapAlgorithm.getLastSplitTarget().position, mStartPosition);
        } else {
            return taskPosition;
        }