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

Commit 4e47b5b0 authored by Tony Wickham's avatar Tony Wickham
Browse files

Mark cells as unoccupied in onDragStart instead of startDrag.

Also move cleanup (resetting variables to null) to onDragEnd
instead of onDropCompleted. These changes are necessary because
pre-drags (for apps with shortcuts) don't call onDragStart
or onDropCompleted.

Bug: 32246571
Change-Id: Ib18fac64555e9158b776f9c12afc2cb807b3c355
parent 3f0a53fa
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -2215,10 +2215,6 @@ public class CellLayout extends ViewGroup implements BubbleTextShadowHandler {
        return solution;
    }

    public void prepareChildForDrag(View child) {
        markCellsAsUnoccupiedForView(child);
    }

    /* This seems like it should be obvious and straight-forward, but when the direction vector
    needs to match with the notion of the dragView pushing other views, we have to employ
    a slightly more subtle notion of the direction vector. The question is what two points is
+7 −4
Original line number Diff line number Diff line
@@ -410,6 +410,11 @@ public class Workspace extends PagedView
            enforceDragParity("onDragStart", 0, 0);
        }

        if (mDragInfo != null && mDragInfo.cell != null) {
            CellLayout layout = (CellLayout) mDragInfo.cell.getParent().getParent();
            layout.markCellsAsUnoccupiedForView(mDragInfo.cell);
        }

        if (mOutlineProvider != null) {
            // The outline is used to visualize where the item will land if dropped
            mOutlineProvider.generateDragOutline(mCanvas);
@@ -477,6 +482,8 @@ public class Workspace extends PagedView
        // Re-enable any Un/InstallShortcutReceiver and now process any queued items
        InstallShortcutReceiver.disableAndFlushInstallQueue(getContext());

        mOutlineProvider = null;
        mDragInfo = null;
        mDragSourceInternal = null;
        mLauncher.onInteractionEnd();
    }
@@ -2244,8 +2251,6 @@ public class Workspace extends PagedView

        mDragInfo = cellInfo;
        child.setVisibility(INVISIBLE);
        CellLayout layout = (CellLayout) child.getParent().getParent();
        layout.prepareChildForDrag(child);

        if (options.isAccessibleDrag) {
            mDragController.addDragListener(new AccessibleDragListenerAdapter(
@@ -3668,8 +3673,6 @@ public class Workspace extends PagedView
                && mDragInfo.cell != null) {
            mDragInfo.cell.setVisibility(VISIBLE);
        }
        mOutlineProvider = null;
        mDragInfo = null;

        if (!isFlingToDelete) {
            // Fling to delete already exits spring loaded mode after the animation finishes.