Merge "Fixing bug where widget preview wasn't fully updated upon drop"
diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java
index 2f8d128..ff1118c 100644
--- a/src/com/android/launcher2/AppsCustomizePagedView.java
+++ b/src/com/android/launcher2/AppsCustomizePagedView.java
@@ -570,6 +570,8 @@
                         mLauncher.getAppWidgetHost().createView(mContext, mWidgetLoadingId, pInfo);
                 info.boundWidget = hostView;
                 mWidgetCleanupState = WIDGET_INFLATED;
+                hostView.setVisibility(INVISIBLE);
+                mLauncher.getDragLayer().addView(hostView);
             }
         };
         post(mInflateWidgetRunnable);
@@ -596,6 +598,7 @@
             AppWidgetHostView widget = info.boundWidget;
             int widgetId = widget.getAppWidgetId();
             mLauncher.getAppWidgetHost().deleteAppWidgetId(widgetId);
+            mLauncher.getDragLayer().removeView(widget);
         }
         mWidgetCleanupState = WIDGET_NO_CLEANUP_REQUIRED;
         mWidgetLoadingId = -1;
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index 9274f81..4e731a2 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -3003,23 +3003,11 @@
         }
     }
 
-    // The following methods deal with animating an item from external drop
-    void onPreDraw(View v) {
-        if (v instanceof ViewGroup) {
-            ViewGroup vg = (ViewGroup) v;
-            for (int i = 0; i < vg.getChildCount(); i++) {
-                View child = vg.getChildAt(i);
-                onPreDraw(child);
-            }
-        } else if (v instanceof TextView) {
-            ((TextView) v).onPreDraw();
-        }
-    }
-
     public Bitmap createWidgetBitmap(PendingAddWidgetInfo widgetInfo) {
         int[] unScaledSize = mLauncher.getWorkspace().estimateItemSize(widgetInfo.spanX,
                 widgetInfo.spanY, widgetInfo, false);
         View layout = widgetInfo.boundWidget;
+        mLauncher.getDragLayer().removeView(layout);
         layout.setVisibility(VISIBLE);
 
         int width = MeasureSpec.makeMeasureSpec(unScaledSize[0], MeasureSpec.EXACTLY);
@@ -3030,7 +3018,6 @@
 
         layout.measure(width, height);
         layout.layout(0, 0, unScaledSize[0], unScaledSize[1]);
-        onPreDraw(layout);
         layout.draw(c);
         c.setBitmap(null);
         return b;