summaryrefslogtreecommitdiffstats
path: root/src/com/cyanogenmod/trebuchet/LauncherModel.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/cyanogenmod/trebuchet/LauncherModel.java')
-rw-r--r--src/com/cyanogenmod/trebuchet/LauncherModel.java13
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;
}