diff options
author | Danesh M <daneshm90@gmail.com> | 2014-01-31 15:22:05 -0800 |
---|---|---|
committer | Danesh M <daneshm90@gmail.com> | 2014-01-31 15:27:01 -0800 |
commit | 5fbcf7f7fabddfd55d959de5278ca635f66c536b (patch) | |
tree | 8db12d98994122336bda92a4e2526e5ada24dfc1 /src/com/android/launcher3/LauncherModel.java | |
parent | 4f89cb488e0d1c22994ff18af9facd6c51ce7464 (diff) | |
download | android_packages_apps_Trebuchet-5fbcf7f7fabddfd55d959de5278ca635f66c536b.tar.gz android_packages_apps_Trebuchet-5fbcf7f7fabddfd55d959de5278ca635f66c536b.tar.bz2 android_packages_apps_Trebuchet-5fbcf7f7fabddfd55d959de5278ca635f66c536b.zip |
Launcher3 : checkItemPlacement fixes
This patchset addresses two bugs :
1) Incorrect casting of key causes mismatches
2) On hotseat items 2 and above, the occupied hashmap is populated
with the CONTAINER_HOTSEAT key, however if its a new item and its required
cell is not already been taken, the code falls through to the workspace checks.
Make sure hotseat items are treated separately.
Change-Id: I1898c6d688cc428a355fdf062218fcda40da98e4
Diffstat (limited to 'src/com/android/launcher3/LauncherModel.java')
-rw-r--r-- | src/com/android/launcher3/LauncherModel.java | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java index 5b2ba588c..ee808df63 100644 --- a/src/com/android/launcher3/LauncherModel.java +++ b/src/com/android/launcher3/LauncherModel.java @@ -1313,19 +1313,24 @@ public class LauncherModel extends BroadcastReceiver { long containerIndex = item.screenId; if (item.container == LauncherSettings.Favorites.CONTAINER_HOTSEAT) { - if (occupied.containsKey(LauncherSettings.Favorites.CONTAINER_HOTSEAT)) { - if (occupied.get(LauncherSettings.Favorites.CONTAINER_HOTSEAT) + if (occupied.containsKey((long) LauncherSettings.Favorites.CONTAINER_HOTSEAT)) { + if (occupied.get((long) LauncherSettings.Favorites.CONTAINER_HOTSEAT) [(int) item.screenId][0] != null) { Log.e(TAG, "Error loading shortcut into hotseat " + item + " into position (" + item.screenId + ":" + item.cellX + "," + item.cellY + ") occupied by " - + occupied.get(LauncherSettings.Favorites.CONTAINER_HOTSEAT) + + occupied.get((long) LauncherSettings.Favorites.CONTAINER_HOTSEAT) [(int) item.screenId][0]); if (occupied.get(LauncherSettings.Favorites.CONTAINER_HOTSEAT) [(int) item.screenId][0].itemType == LauncherSettings.Favorites.ITEM_TYPE_ALLAPPS) { deleteOnItemOverlap.set(true); } return false; + } else { + ItemInfo[][] hotseatItems = occupied.get( + (long) LauncherSettings.Favorites.CONTAINER_HOTSEAT); + hotseatItems[(int) item.screenId][0] = item; + return true; } } else { ItemInfo[][] items = new ItemInfo[countX + 1][countY + 1]; |