summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher2
diff options
context:
space:
mode:
authorAdam Cohen <adamcohen@google.com>2011-04-18 16:15:31 -0700
committerAdam Cohen <adamcohen@google.com>2011-04-18 17:07:58 -0700
commite0310965022e7a1adb7ad489505d404186608689 (patch)
tree4a54b6b27dfb7ed605ec5d6b489812589e43f4bd /src/com/android/launcher2
parent0bfd88c56b2fcd13620661a173137678a19d6ae3 (diff)
downloadandroid_packages_apps_Trebuchet-e0310965022e7a1adb7ad489505d404186608689.tar.gz
android_packages_apps_Trebuchet-e0310965022e7a1adb7ad489505d404186608689.tar.bz2
android_packages_apps_Trebuchet-e0310965022e7a1adb7ad489505d404186608689.zip
Removing dragoutlines when dragging a shortcut above a shortcut
Change-Id: I235597a2e2565f93ebea81ae133ad8f1a5d9d4ce
Diffstat (limited to 'src/com/android/launcher2')
-rw-r--r--src/com/android/launcher2/CellLayout.java7
-rw-r--r--src/com/android/launcher2/Workspace.java37
2 files changed, 40 insertions, 4 deletions
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java
index 2b3bb9a63..80e92c492 100644
--- a/src/com/android/launcher2/CellLayout.java
+++ b/src/com/android/launcher2/CellLayout.java
@@ -1003,6 +1003,13 @@ public class CellLayout extends ViewGroup {
}
}
+ public void clearDragOutlines() {
+ final int oldIndex = mDragOutlineCurrent;
+ mDragOutlineAnims[oldIndex].animateOut();
+ mDragCell[0] = -1;
+ mDragCell[1] = -1;
+ }
+
/**
* Find a vacant area that will fit the given bounds nearest the requested
* cell location. Uses Euclidean distance to score multiple vacant areas.
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index ce8fa40f5..b1aa41084 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -131,6 +131,7 @@ public class Workspace extends SmoothPagedView
private int mDefaultPage;
private boolean mIsDragInProcess = false;
+ private boolean mIsDraggingOverIcon = false;
/**
* CellInfo for the cell that is currently being dragged
@@ -2287,6 +2288,25 @@ public class Workspace extends SmoothPagedView
return true;
}
+ boolean willCreateUserFolder(ItemInfo info, CellLayout target, int originX, int originY) {
+ mTargetCell = findNearestArea(originX, originY,
+ 1, 1, target,
+ mTargetCell);
+
+ View v = target.getChildAt(mTargetCell[0], mTargetCell[1]);
+ boolean hasntMoved = mDragInfo != null && (mDragInfo.cellX == mTargetCell[0] &&
+ mDragInfo.cellY == mTargetCell[1]);
+
+ if (v == null || hasntMoved) return false;
+
+ boolean aboveShortcut = (v.getTag() instanceof ShortcutInfo);
+ boolean willBecomeShortcut =
+ (info.itemType == LauncherSettings.Favorites.ITEM_TYPE_APPLICATION ||
+ info.itemType == LauncherSettings.Favorites.ITEM_TYPE_SHORTCUT);
+
+ return (aboveShortcut && willBecomeShortcut);
+ }
+
boolean createUserFolderIfNecessary(View newView, CellLayout target, int originX,
int originY, boolean external) {
int spanX = mDragInfo != null ? mDragInfo.spanX : 1;
@@ -2900,10 +2920,19 @@ public class Workspace extends SmoothPagedView
final View child = (mDragInfo == null) ? null : mDragInfo.cell;
// We want the point to be mapped to the dragTarget.
mapPointFromSelfToChild(mDragTargetLayout, mDragViewVisualCenter, null);
- mDragTargetLayout.visualizeDropLocation(child, mDragOutline,
- (int) mDragViewVisualCenter[0],
- (int) mDragViewVisualCenter[1],
- item.spanX, item.spanY);
+ ItemInfo info = (ItemInfo) dragInfo;
+
+ if (!willCreateUserFolder(info, mDragTargetLayout,
+ (int) mDragViewVisualCenter[0], (int) mDragViewVisualCenter[1])) {
+ mIsDraggingOverIcon = false;
+ mDragTargetLayout.visualizeDropLocation(child, mDragOutline,
+ (int) mDragViewVisualCenter[0],
+ (int) mDragViewVisualCenter[1],
+ item.spanX, item.spanY);
+ } else if (!mIsDraggingOverIcon) {
+ mIsDraggingOverIcon = true;
+ mDragTargetLayout.clearDragOutlines();
+ }
}
}
}