summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Cohen <adamcohen@google.com>2012-05-09 21:34:33 -0700
committerAdam Cohen <adamcohen@google.com>2012-05-10 10:21:48 -0700
commit88c5d2d8eb895904f4626fb5d2f3e693327de650 (patch)
tree70d03d5e095794bda8176202c4291b5542b396e1 /src
parent740197b634b59cef484e4465d140acd6c08bc25b (diff)
downloadandroid_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.java14
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