diff options
author | Adam Cohen <adamcohen@google.com> | 2011-04-18 16:15:31 -0700 |
---|---|---|
committer | Adam Cohen <adamcohen@google.com> | 2011-04-18 17:07:58 -0700 |
commit | e0310965022e7a1adb7ad489505d404186608689 (patch) | |
tree | 4a54b6b27dfb7ed605ec5d6b489812589e43f4bd /src/com/android/launcher2 | |
parent | 0bfd88c56b2fcd13620661a173137678a19d6ae3 (diff) | |
download | android_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.java | 7 | ||||
-rw-r--r-- | src/com/android/launcher2/Workspace.java | 37 |
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(); + } } } } |