diff options
author | Adam Cohen <adamcohen@google.com> | 2013-11-26 10:34:59 -0800 |
---|---|---|
committer | Danesh M <daneshm90@gmail.com> | 2014-06-06 22:54:22 -0700 |
commit | b1666a6b194f6ce6f49e002c5370344736033c98 (patch) | |
tree | 3b8807b7ac52a521e605d752ca2c98d242a9c8f7 /src | |
parent | f805d1cb9207e7c35e7333b1a4bde152be8e1b09 (diff) | |
download | android_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.java | 50 |
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; |