Merge "Fix some issues with shortcut containers opened inside folders." into ub-launcher3-calgary
diff --git a/src/com/android/launcher3/dragndrop/DragLayer.java b/src/com/android/launcher3/dragndrop/DragLayer.java
index aebb1fd..ce97536 100644
--- a/src/com/android/launcher3/dragndrop/DragLayer.java
+++ b/src/com/android/launcher3/dragndrop/DragLayer.java
@@ -230,6 +230,28 @@
}
}
+ // Remove the shortcuts container when touching outside of it.
+ DeepShortcutsContainer deepShortcutsContainer = (DeepShortcutsContainer)
+ findViewById(R.id.deep_shortcuts_container);
+ if (deepShortcutsContainer != null) {
+ if (isEventOverView(deepShortcutsContainer, ev)) {
+ // Let the container handle the event.
+ return false;
+ } else {
+ if (isInAccessibleDrag()) {
+ // Do not close the container if in drag and drop.
+ if (!isEventOverDropTargetBar(ev)) {
+ return true;
+ }
+ } else {
+ removeView(deepShortcutsContainer);
+ // We let touches on the original icon go through so that users can launch
+ // the app with one tap if they don't find a shortcut they want.
+ return !isEventOverView(deepShortcutsContainer.getDeferredDragIcon(), ev);
+ }
+ }
+ }
+
Folder currentFolder = mLauncher.getWorkspace().getOpenFolder();
if (currentFolder != null && intercept) {
if (currentFolder.isEditingName()) {
@@ -251,25 +273,6 @@
}
}
}
-
- // Remove the shortcuts container when touching outside of it.
- DeepShortcutsContainer deepShortcutsContainer = (DeepShortcutsContainer)
- findViewById(R.id.deep_shortcuts_container);
- if (deepShortcutsContainer != null) {
- if (!isEventOverView(deepShortcutsContainer, ev)) {
- if (isInAccessibleDrag()) {
- // Do not close the container if in drag and drop.
- if (!isEventOverDropTargetBar(ev)) {
- return true;
- }
- } else {
- removeView(deepShortcutsContainer);
- // We let touches on the original icon go through so that users can launch
- // the app with one tap if they don't find a shortcut they want.
- return !isEventOverView(deepShortcutsContainer.getDeferredDragIcon(), ev);
- }
- }
- }
return false;
}
diff --git a/src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java b/src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java
index 008b265..6f3875c 100644
--- a/src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java
+++ b/src/com/android/launcher3/shortcuts/DeepShortcutsContainer.java
@@ -359,6 +359,8 @@
mLauncher.getDragLayer().setController(mLauncher.getDragController());
mLauncher.getWorkspace().beginDragShared(v, mIconLastTouchPos, this, false);
((DragLayer) getParent()).removeView(this);
+ // TODO: support dragging from within folder without having to close it
+ mLauncher.closeFolder();
return false;
}