diff options
Diffstat (limited to 'src/com/cyanogenmod/trebuchet/AppsCustomizePagedView.java')
-rwxr-xr-x | src/com/cyanogenmod/trebuchet/AppsCustomizePagedView.java | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/com/cyanogenmod/trebuchet/AppsCustomizePagedView.java b/src/com/cyanogenmod/trebuchet/AppsCustomizePagedView.java index 6fe2db96f..0963a1c6b 100755 --- a/src/com/cyanogenmod/trebuchet/AppsCustomizePagedView.java +++ b/src/com/cyanogenmod/trebuchet/AppsCustomizePagedView.java @@ -76,7 +76,7 @@ class AsyncTaskPageData { } AsyncTaskPageData(int p, ArrayList<Object> l, int cw, int ch, AsyncTaskCallback bgR, - AsyncTaskCallback postR) { + AsyncTaskCallback postR, WidgetPreviewLoader w) { page = p; items = l; generatedImages = new ArrayList<Bitmap>(); @@ -84,13 +84,14 @@ class AsyncTaskPageData { maxImageHeight = ch; doInBackgroundCallback = bgR; postExecuteCallback = postR; + widgetPreviewLoader = w; } void cleanup(boolean cancelled) { // Clean up any references to source/generated bitmaps if (generatedImages != null) { if (cancelled) { for (int i = 0; i < generatedImages.size(); i++) { - WidgetPreviewLoader.releaseBitmap(items.get(i), generatedImages.get(i)); + widgetPreviewLoader.releaseBitmap(items.get(i), generatedImages.get(i)); } } generatedImages.clear(); @@ -104,6 +105,7 @@ class AsyncTaskPageData { int maxImageHeight; AsyncTaskCallback doInBackgroundCallback; AsyncTaskCallback postExecuteCallback; + WidgetPreviewLoader widgetPreviewLoader; } /** @@ -461,6 +463,10 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen } protected void onDataReady(int width, int height) { + if (mWidgetPreviewLoader == null) { + mWidgetPreviewLoader = new WidgetPreviewLoader(mLauncher); + } + // Note that we transpose the counts in portrait so that we get a similar layout boolean isLandscape = getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE; @@ -1299,7 +1305,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen // do cleanup inside onSyncWidgetPageItems onSyncWidgetPageItems(data); } - }); + }, mWidgetPreviewLoader); // Ensure that the task is appropriately prioritized and runs in parallel AppsCustomizeAsyncTask t = new AppsCustomizeAsyncTask(page, mContentType, @@ -1377,7 +1383,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen createItemInfo.minSpanX = minSpanXY[0]; createItemInfo.minSpanY = minSpanXY[1]; - widget.applyFromAppWidgetProviderInfo(info, -1, spanXY); + widget.applyFromAppWidgetProviderInfo(info, -1, spanXY, mWidgetPreviewLoader); widget.setTag(createItemInfo); widget.setShortPressListener(this); } else if (rawInfo instanceof ResolveInfo) { @@ -1390,7 +1396,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen } createItemInfo.componentName = new ComponentName(info.activityInfo.packageName, info.activityInfo.name); - widget.applyFromResolveInfo(mPackageManager, info); + widget.applyFromResolveInfo(mPackageManager, info, mWidgetPreviewLoader); widget.setTag(createItemInfo); } widget.setOnClickListener(this); @@ -1427,13 +1433,11 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen maxPreviewHeight = maxSize[1]; } - if (mWidgetPreviewLoader == null) { - mWidgetPreviewLoader = new WidgetPreviewLoader( - maxPreviewWidth, maxPreviewHeight, mLauncher, mWidgetSpacingLayout); - } + mWidgetPreviewLoader.setPreviewSize( + maxPreviewWidth, maxPreviewHeight, mWidgetSpacingLayout); if (immediate) { AsyncTaskPageData data = new AsyncTaskPageData(page, items, - maxPreviewWidth, maxPreviewHeight, null, null); + maxPreviewWidth, maxPreviewHeight, null, null, mWidgetPreviewLoader); loadWidgetPreviewsInBackground(null, data); onSyncWidgetPageItems(data); } else { |