Fixing bug where widget preview wasn't fully updated upon drop
-> The prebound widget is now added to the DragLayer to ensure that it goes through all necessary measure/layout/attach etc. Change-Id: I53ca32e88fcbc2211d2747c3b067816c0d518e30
This commit is contained in:
parent
038085598c
commit
ef3dd6efe0
|
@ -570,6 +570,8 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
|
|||
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 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
|
|||
AppWidgetHostView widget = info.boundWidget;
|
||||
int widgetId = widget.getAppWidgetId();
|
||||
mLauncher.getAppWidgetHost().deleteAppWidgetId(widgetId);
|
||||
mLauncher.getDragLayer().removeView(widget);
|
||||
}
|
||||
mWidgetCleanupState = WIDGET_NO_CLEANUP_REQUIRED;
|
||||
mWidgetLoadingId = -1;
|
||||
|
|
|
@ -3003,23 +3003,11 @@ public class Workspace extends SmoothPagedView
|
|||
}
|
||||
}
|
||||
|
||||
// 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 @@ public class Workspace extends SmoothPagedView
|
|||
|
||||
layout.measure(width, height);
|
||||
layout.layout(0, 0, unScaledSize[0], unScaledSize[1]);
|
||||
onPreDraw(layout);
|
||||
layout.draw(c);
|
||||
c.setBitmap(null);
|
||||
return b;
|
||||
|
|
Loading…
Reference in New Issue