summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/LauncherModel.java
diff options
context:
space:
mode:
authorDanesh M <daneshm90@gmail.com>2014-01-31 15:22:05 -0800
committerDanesh M <daneshm90@gmail.com>2014-01-31 15:27:01 -0800
commit5fbcf7f7fabddfd55d959de5278ca635f66c536b (patch)
tree8db12d98994122336bda92a4e2526e5ada24dfc1 /src/com/android/launcher3/LauncherModel.java
parent4f89cb488e0d1c22994ff18af9facd6c51ce7464 (diff)
downloadandroid_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.java11
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];