summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/LauncherModel.java
diff options
context:
space:
mode:
authorWinson Chung <winsonc@google.com>2013-08-12 16:19:28 -0700
committerWinson Chung <winsonc@google.com>2013-08-20 10:56:05 -0700
commit5f8afe6280eae34620067696173e71943e1a30a3 (patch)
treeeb0ebdf56f2ad0950894424a49de9d1e8dc832e0 /src/com/android/launcher3/LauncherModel.java
parent8a6870101c3d99257fc050d11bb69f50f5240622 (diff)
downloadandroid_packages_apps_Trebuchet-5f8afe6280eae34620067696173e71943e1a30a3.tar.gz
android_packages_apps_Trebuchet-5f8afe6280eae34620067696173e71943e1a30a3.tar.bz2
android_packages_apps_Trebuchet-5f8afe6280eae34620067696173e71943e1a30a3.zip
Initial Changes for Dynamic Grid
Change-Id: I9e6f1e5167791cf8dc140778dfa447f86424e9bf
Diffstat (limited to 'src/com/android/launcher3/LauncherModel.java')
-rw-r--r--src/com/android/launcher3/LauncherModel.java35
1 files changed, 34 insertions, 1 deletions
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index 2ac9b1b6c..cd37a167c 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -1556,6 +1556,11 @@ public class LauncherModel extends BroadcastReceiver {
}
}
+ private boolean checkItemDimensions(ItemInfo info) {
+ return (info.cellX + info.spanX) > mCellCountX ||
+ (info.cellY + info.spanY) > mCellCountY;
+ }
+
// check & update map of what's occupied; used to discard overlapping/invalid items
private boolean checkItemPlacement(HashMap<Long, ItemInfo[][]> occupied, ItemInfo item) {
long containerIndex = item.screenId;
@@ -1743,6 +1748,16 @@ public class LauncherModel extends BroadcastReceiver {
info.screenId = c.getInt(screenIndex);
info.cellX = c.getInt(cellXIndex);
info.cellY = c.getInt(cellYIndex);
+ info.spanX = 1;
+ info.spanY = 1;
+ // Skip loading items that are out of bounds
+ if (container == LauncherSettings.Favorites.CONTAINER_DESKTOP) {
+ if (checkItemDimensions(info)) {
+ Log.d(TAG, "Skipped loading out of bounds shortcut: "
+ + info.intent);
+ continue;
+ }
+ }
// check & update map of what's occupied
if (!checkItemPlacement(occupied, info)) {
break;
@@ -1781,11 +1796,22 @@ public class LauncherModel extends BroadcastReceiver {
folderInfo.screenId = c.getInt(screenIndex);
folderInfo.cellX = c.getInt(cellXIndex);
folderInfo.cellY = c.getInt(cellYIndex);
-
+ folderInfo.spanX = 1;
+ folderInfo.spanY = 1;
+
+ // Skip loading items that are out of bounds
+ if (container == LauncherSettings.Favorites.CONTAINER_DESKTOP) {
+ int iconSpan = 1;
+ if (checkItemDimensions(folderInfo)) {
+ Log.d(TAG, "Skipped loading out of bounds folder");
+ continue;
+ }
+ }
// check & update map of what's occupied
if (!checkItemPlacement(occupied, folderInfo)) {
break;
}
+
switch (container) {
case LauncherSettings.Favorites.CONTAINER_DESKTOP:
case LauncherSettings.Favorites.CONTAINER_HOTSEAT:
@@ -1834,6 +1860,13 @@ public class LauncherModel extends BroadcastReceiver {
}
appWidgetInfo.container = c.getInt(containerIndex);
+ // Skip loading items that are out of bounds
+ if (container == LauncherSettings.Favorites.CONTAINER_DESKTOP) {
+ if (checkItemDimensions(appWidgetInfo)) {
+ Log.d(TAG, "Skipped loading out of bounds app widget");
+ continue;
+ }
+ }
// check & update map of what's occupied
if (!checkItemPlacement(occupied, appWidgetInfo)) {
break;