diff options
author | Adam Cohen <adamcohen@google.com> | 2012-05-09 21:34:33 -0700 |
---|---|---|
committer | Adam Cohen <adamcohen@google.com> | 2012-05-10 10:21:48 -0700 |
commit | 88c5d2d8eb895904f4626fb5d2f3e693327de650 (patch) | |
tree | 70d03d5e095794bda8176202c4291b5542b396e1 /src | |
parent | 740197b634b59cef484e4465d140acd6c08bc25b (diff) | |
download | android_packages_apps_Trebuchet-88c5d2d8eb895904f4626fb5d2f3e693327de650.tar.gz android_packages_apps_Trebuchet-88c5d2d8eb895904f4626fb5d2f3e693327de650.tar.bz2 android_packages_apps_Trebuchet-88c5d2d8eb895904f4626fb5d2f3e693327de650.zip |
Fix NPE when dragging widget with preview not yet loaded (issue 6282761)
Change-Id: I95638884bd6548f391135427a20566933ab757c0
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/launcher2/AppsCustomizePagedView.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java index 54af0803e..21872b914 100644 --- a/src/com/android/launcher2/AppsCustomizePagedView.java +++ b/src/com/android/launcher2/AppsCustomizePagedView.java @@ -641,12 +641,19 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen } } - private void beginDraggingWidget(View v) { + private boolean beginDraggingWidget(View v) { mDraggingWidget = true; // Get the widget preview as the drag representation ImageView image = (ImageView) v.findViewById(R.id.widget_preview); PendingAddItemInfo createItemInfo = (PendingAddItemInfo) v.getTag(); + // If the ImageView doesn't have a drawable yet, the widget preview hasn't been loaded and + // we abort the drag. + if (image.getDrawable() == null) { + mDraggingWidget = false; + return false; + } + // Compose the drag image Bitmap preview; Bitmap outline; @@ -712,6 +719,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen DragController.DRAG_ACTION_COPY, null, scale); outline.recycle(); preview.recycle(); + return true; } @Override @@ -721,7 +729,9 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen if (v instanceof PagedViewIcon) { beginDraggingApplication(v); } else if (v instanceof PagedViewWidget) { - beginDraggingWidget(v); + if (!beginDraggingWidget(v)) { + return false; + } } // We delay entering spring-loaded mode slightly to make sure the UI |