summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Cohen <adamcohen@google.com>2013-11-26 10:34:59 -0800
committerDanesh M <daneshm90@gmail.com>2014-06-06 22:54:22 -0700
commitb1666a6b194f6ce6f49e002c5370344736033c98 (patch)
tree3b8807b7ac52a521e605d752ca2c98d242a9c8f7 /src
parentf805d1cb9207e7c35e7333b1a4bde152be8e1b09 (diff)
downloadandroid_packages_apps_Trebuchet-b1666a6b194f6ce6f49e002c5370344736033c98.tar.gz
android_packages_apps_Trebuchet-b1666a6b194f6ce6f49e002c5370344736033c98.tar.bz2
android_packages_apps_Trebuchet-b1666a6b194f6ce6f49e002c5370344736033c98.zip
Don't load items which exceed the grid bounds
-> Unified location where this is managed (with other placement verification) -> For now, not deleting out of bounds items, but can turn it on in one line Change-Id: I5e1a5cd357d80475ae40af7b89a0cd372d5c241b
Diffstat (limited to 'src')
-rw-r--r--src/com/android/launcher3/LauncherModel.java50
1 files changed, 11 insertions, 39 deletions
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index 836c08e0e..8fea607e2 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -1663,13 +1663,6 @@ public class LauncherModel extends BroadcastReceiver {
}
}
- private boolean checkItemDimensions(ItemInfo info) {
- LauncherAppState app = LauncherAppState.getInstance();
- DeviceProfile grid = app.getDynamicGrid().getDeviceProfile();
- return (info.cellX + info.spanX) > (int) grid.numColumns ||
- (info.cellY + info.spanY) > (int) grid.numRows;
- }
-
/** Clears all the sBg data structures */
private void clearSBgDataStructures() {
synchronized (sBgLock) {
@@ -1766,7 +1759,7 @@ public class LauncherModel extends BroadcastReceiver {
Intent intent = null;
while (!mStopped && c.moveToNext()) {
- AtomicBoolean deleteOnItemOverlap = new AtomicBoolean(false);
+ AtomicBoolean deleteOnInvalidPlacement = new AtomicBoolean(false);
try {
int itemType = c.getInt(itemTypeIndex);
@@ -1833,18 +1826,11 @@ public class LauncherModel extends BroadcastReceiver {
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)) {
- Launcher.addDumpLog(TAG, "Skipped loading out of bounds shortcut: "
- + info + ", " + grid.numColumns + "x" + grid.numRows, true);
- continue;
- }
- }
+
// check & update map of what's occupied
- deleteOnItemOverlap.set(false);
- if (!checkItemPlacement(occupied, info, deleteOnItemOverlap)) {
- if (deleteOnItemOverlap.get()) {
+ deleteOnInvalidPlacement.set(false);
+ if (!checkItemPlacement(occupied, info, deleteOnInvalidPlacement)) {
+ if (deleteOnInvalidPlacement.get()) {
itemsToRemove.add(id);
}
break;
@@ -1886,18 +1872,11 @@ public class LauncherModel extends BroadcastReceiver {
folderInfo.spanX = 1;
folderInfo.spanY = 1;
- // Skip loading items that are out of bounds
- if (container == LauncherSettings.Favorites.CONTAINER_DESKTOP) {
- if (checkItemDimensions(folderInfo)) {
- Log.d(TAG, "Skipped loading out of bounds folder");
- continue;
- }
- }
// check & update map of what's occupied
- deleteOnItemOverlap.set(false);
+ deleteOnInvalidPlacement.set(false);
if (!checkItemPlacement(occupied, folderInfo,
- deleteOnItemOverlap)) {
- if (deleteOnItemOverlap.get()) {
+ deleteOnInvalidPlacement)) {
+ if (deleteOnInvalidPlacement.get()) {
itemsToRemove.add(id);
}
break;
@@ -1953,18 +1932,11 @@ 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
- deleteOnItemOverlap.set(false);
+ deleteOnInvalidPlacement.set(false);
if (!checkItemPlacement(occupied, appWidgetInfo,
- deleteOnItemOverlap)) {
- if (deleteOnItemOverlap.get()) {
+ deleteOnInvalidPlacement)) {
+ if (deleteOnInvalidPlacement.get()) {
itemsToRemove.add(id);
}
break;