summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher2/Folder.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher2/Folder.java')
-rw-r--r--src/com/android/launcher2/Folder.java29
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);
+ }
}