OSDN Git Service

Prevent exception in production when icons collide during bind
authorAdam Cohen <adamcohen@google.com>
Fri, 4 Apr 2014 01:12:34 +0000 (18:12 -0700)
committerAdam Cohen <adamcohen@google.com>
Fri, 4 Apr 2014 01:14:30 +0000 (18:14 -0700)
-> We only need to throw an exception for dogfooders so we can
   track the issue
-> Worst case, an icon is ignored, does not warrant a crash.

issue 12106766

Change-Id: I054a849eb3d65762dc5e1bf699c76655f687c3e8

src/com/android/launcher3/Launcher.java

index 5bdd7eb..6474d26 100644 (file)
@@ -3982,7 +3982,15 @@ public class Launcher extends Activity
                     if (item.container == LauncherSettings.Favorites.CONTAINER_DESKTOP) {
                         CellLayout cl = mWorkspace.getScreenWithId(item.screenId);
                         if (cl != null && cl.isOccupied(item.cellX, item.cellY)) {
-                            throw new RuntimeException("OCCUPIED");
+                            View v = cl.getChildAt(item.cellX, item.cellY);
+                            Object tag = v.getTag();
+                            String desc = "Collision while binding workspace item: " + item
+                                    + ". Collides with " + tag;
+                            if (LauncherAppState.isDogfoodBuild()) {
+                                throw (new RuntimeException(desc));
+                            } else {
+                                Log.d(TAG, desc);
+                            }
                         }
                     }