diff options
Diffstat (limited to 'src/com/cyanogenmod/trebuchet/LauncherModel.java')
-rw-r--r-- | src/com/cyanogenmod/trebuchet/LauncherModel.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/com/cyanogenmod/trebuchet/LauncherModel.java b/src/com/cyanogenmod/trebuchet/LauncherModel.java index 6ada4def9..e49c19150 100644 --- a/src/com/cyanogenmod/trebuchet/LauncherModel.java +++ b/src/com/cyanogenmod/trebuchet/LauncherModel.java @@ -49,6 +49,7 @@ import android.util.Log; import com.cyanogenmod.trebuchet.R; import com.cyanogenmod.trebuchet.InstallWidgetReceiver.WidgetMimeTypeHandlerData; +import com.cyanogenmod.trebuchet.preference.PreferencesProvider; import java.lang.ref.WeakReference; import java.net.URISyntaxException; @@ -1059,13 +1060,15 @@ public class LauncherModel extends BroadcastReceiver { // We use the last index to refer to the hotseat and the screen as the rank, so // test and update the occupied state accordingly - if (occupied[Launcher.MAX_SCREEN_COUNT][item.screen][0] != null) { + if (occupied[PreferencesProvider.Interface.Homescreen.getNumberHomescreens(mContext)] + [item.screen][0] != null) { Log.e(TAG, "Error loading shortcut into hotseat " + item + " into position (" + item.screen + ":" + item.cellX + "," + item.cellY + ") occupied by " + occupied[Launcher.MAX_SCREEN_COUNT][item.screen][0]); return false; } else { - occupied[Launcher.MAX_SCREEN_COUNT][item.screen][0] = item; + occupied[PreferencesProvider.Interface.Homescreen.getNumberHomescreens(mContext)] + [item.screen][0] = item; return true; } } else if (item.container != LauncherSettings.Favorites.CONTAINER_DESKTOP) { @@ -1114,8 +1117,10 @@ public class LauncherModel extends BroadcastReceiver { sBgItemsIdMap.clear(); sBgDbIconCache.clear(); + int numberHotseatIcons = PreferencesProvider.Interface.Dock.getNumberHotseatIcons(mContext); final ItemInfo occupied[][][] = - new ItemInfo[Launcher.MAX_SCREEN_COUNT + 1][mCellCountX + 1][mCellCountY + 1]; + new ItemInfo[PreferencesProvider.Interface.Homescreen.getNumberHomescreens(mContext) + 1] + [Math.max(mCellCountX, numberHotseatIcons)][mCellCountY]; final ArrayList<Long> itemsToRemove = new ArrayList<Long>(); @@ -1208,6 +1213,8 @@ public class LauncherModel extends BroadcastReceiver { // check & update map of what's occupied if (!checkItemPlacement(occupied, info)) { + id = c.getLong(idIndex); + itemsToRemove.add(id); break; } |