diff options
Diffstat (limited to 'src/com/android/launcher2/CellLayout.java')
-rw-r--r-- | src/com/android/launcher2/CellLayout.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java index 79d8dc534..199c41a59 100644 --- a/src/com/android/launcher2/CellLayout.java +++ b/src/com/android/launcher2/CellLayout.java @@ -57,6 +57,7 @@ import java.util.Stack; public class CellLayout extends ViewGroup { static final String TAG = "CellLayout"; + private Launcher mLauncher; private int mOriginalCellWidth; private int mOriginalCellHeight; private int mCellWidth; @@ -175,6 +176,7 @@ public class CellLayout extends ViewGroup { // A ViewGroup usually does not draw, but CellLayout needs to draw a rectangle to show // the user where a dragged item will land when dropped. setWillNotDraw(false); + mLauncher = (Launcher) context; TypedArray a = context.obtainStyledAttributes(attrs, R.styleable.CellLayout, defStyle, 0); @@ -2074,11 +2076,14 @@ public class CellLayout extends ViewGroup { View child = mShortcutsAndWidgets.getChildAt(i); LayoutParams lp = (LayoutParams) child.getLayoutParams(); ItemInfo info = (ItemInfo) child.getTag(); - info.cellX = lp.cellX = lp.tmpCellX; - info.cellY = lp.cellY = lp.tmpCellY; + // We do a null check here because the item info can be null in the case of the + // AllApps button in the hotseat. + if (info != null) { + info.cellX = lp.cellX = lp.tmpCellX; + info.cellY = lp.cellY = lp.tmpCellY; + } } - Workspace workspace = (Workspace) getParent(); - workspace.updateItemLocationsInDatabase(this); + mLauncher.getWorkspace().updateItemLocationsInDatabase(this); } public void setUseTempCoords(boolean useTempCoords) { |