summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTony Wickham <twickham@google.com>2016-10-18 14:43:01 -0700
committerTony Wickham <twickham@google.com>2016-10-18 14:46:02 -0700
commit4e47b5b0d678f9b23bee211a7808c73c51a1d7d1 (patch)
tree7d8f06abcfffbbb8e5793cb186e6551b74a404a0
parent3f0a53fa448fc077a1e3ca547bdd0f3bd408372f (diff)
downloadandroid_packages_apps_Trebuchet-4e47b5b0d678f9b23bee211a7808c73c51a1d7d1.tar.gz
android_packages_apps_Trebuchet-4e47b5b0d678f9b23bee211a7808c73c51a1d7d1.tar.bz2
android_packages_apps_Trebuchet-4e47b5b0d678f9b23bee211a7808c73c51a1d7d1.zip
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
-rw-r--r--src/com/android/launcher3/CellLayout.java4
-rw-r--r--src/com/android/launcher3/Workspace.java11
2 files changed, 7 insertions, 8 deletions
diff --git a/src/com/android/launcher3/CellLayout.java b/src/com/android/launcher3/CellLayout.java
index 5d3cbb299..191135d7d 100644
--- a/src/com/android/launcher3/CellLayout.java
+++ b/src/com/android/launcher3/CellLayout.java
@@ -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
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 79a81ec11..52fb52732 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -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.