diff options
Diffstat (limited to 'src/com/android/launcher2/Folder.java')
-rw-r--r-- | src/com/android/launcher2/Folder.java | 29 |
1 files changed, 27 insertions, 2 deletions
diff --git a/src/com/android/launcher2/Folder.java b/src/com/android/launcher2/Folder.java index 4c8d03a4a..5a4358d2f 100644 --- a/src/com/android/launcher2/Folder.java +++ b/src/com/android/launcher2/Folder.java @@ -39,12 +39,13 @@ import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemLongClickListener; import com.android.launcher.R; +import com.android.launcher2.FolderInfo.FolderListener; /** * Represents a set of icons chosen by the user or generated by the system. */ public class Folder extends LinearLayout implements DragSource, OnItemLongClickListener, - OnItemClickListener, OnClickListener, View.OnLongClickListener, DropTarget { + OnItemClickListener, OnClickListener, View.OnLongClickListener, DropTarget, FolderListener { protected DragController mDragController; @@ -71,6 +72,7 @@ public class Folder extends LinearLayout implements DragSource, OnItemLongClickL private final LayoutInflater mInflater; private final IconCache mIconCache; private int mState = STATE_NONE; + private int[] mDragItemPosition = new int[2]; /** * Used to inflate the Workspace from XML. @@ -131,7 +133,8 @@ public class Folder extends LinearLayout implements DragSource, OnItemLongClickL mLauncher.getWorkspace().onDragStartedWithItem(v); mDragController.startDrag(v, this, item, DragController.DRAG_ACTION_COPY); - + mDragItemPosition[0] = item.cellX; + mDragItemPosition[1] = item.cellY; mLauncher.closeFolder(this); mDragItem = item; } else { @@ -198,6 +201,7 @@ public class Folder extends LinearLayout implements DragSource, OnItemLongClickL } createAndAddShortcut((ShortcutInfo) children.get(i)); } + mInfo.addListener(this); } /** @@ -409,4 +413,25 @@ public class Folder extends LinearLayout implements DragSource, OnItemLongClickL DragView dragView, Object dragInfo) { return null; } + + public void onAdd(ShortcutInfo item) { + if ((item.cellX == -1 && item.cellY == -1) || + mContent.isOccupied(item.cellX, item.cellY)) { + findAndSetEmptyCells(item); + } + createAndAddShortcut(item); + } + + public int getItemCount() { + return mContent.getChildrenLayout().getChildCount(); + } + + public View getItemAt(int index) { + return mContent.getChildrenLayout().getChildAt(index); + } + + public void onRemove(ShortcutInfo item) { + View v = mContent.getChildAt(mDragItemPosition[0], mDragItemPosition[1]); + mContent.removeView(v); + } } |