diff options
-rw-r--r-- | src/com/android/launcher2/CellLayout.java | 13 | ||||
-rw-r--r-- | src/com/android/launcher2/Workspace.java | 8 |
2 files changed, 14 insertions, 7 deletions
diff --git a/src/com/android/launcher2/CellLayout.java b/src/com/android/launcher2/CellLayout.java index fb319fe0c..5aa39c425 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); @@ -2071,11 +2073,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) { diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java index 2b69a1276..0ef6fd96f 100644 --- a/src/com/android/launcher2/Workspace.java +++ b/src/com/android/launcher2/Workspace.java @@ -3353,9 +3353,11 @@ public class Workspace extends SmoothPagedView for (int i = 0; i < count; i++) { View v = cl.getShortcutsAndWidgets().getChildAt(i); ItemInfo info = (ItemInfo) v.getTag(); - - LauncherModel.moveItemInDatabase(mLauncher, info, Favorites.CONTAINER_DESKTOP, screen, - info.cellX, info.cellY); + // Null check required as the AllApps button doesn't have an item info + if (info != null) { + LauncherModel.moveItemInDatabase(mLauncher, info, Favorites.CONTAINER_DESKTOP, + screen, info.cellX, info.cellY); + } } } |