diff options
author | Michael Jurka <mikejurka@google.com> | 2014-01-09 14:59:22 +0100 |
---|---|---|
committer | Danesh M <daneshm90@gmail.com> | 2014-06-06 22:54:26 -0700 |
commit | 87d263e5a6c69122b91973ee62445f97e0466047 (patch) | |
tree | a4da6855d3053ba88df288c71e0a78f4f08b4a1f /src/com/android/launcher3/AppsCustomizePagedView.java | |
parent | 00612cac2ed50f30095c9f16a998edb456e39cb1 (diff) | |
download | android_packages_apps_Trebuchet-87d263e5a6c69122b91973ee62445f97e0466047.tar.gz android_packages_apps_Trebuchet-87d263e5a6c69122b91973ee62445f97e0466047.tar.bz2 android_packages_apps_Trebuchet-87d263e5a6c69122b91973ee62445f97e0466047.zip |
Lazy load the widget preview loader class
Bug: 12109621
Change-Id: Id99aded30195bf39ebcf2148611bc4e084f3b2c7
Diffstat (limited to 'src/com/android/launcher3/AppsCustomizePagedView.java')
-rw-r--r-- | src/com/android/launcher3/AppsCustomizePagedView.java | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/src/com/android/launcher3/AppsCustomizePagedView.java b/src/com/android/launcher3/AppsCustomizePagedView.java index 92ba5eda7..702d94c87 100644 --- a/src/com/android/launcher3/AppsCustomizePagedView.java +++ b/src/com/android/launcher3/AppsCustomizePagedView.java @@ -367,6 +367,13 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen mPageLayoutPaddingBottom = pageIndicatorHeight; } + WidgetPreviewLoader getWidgetPreviewLoader() { + if (mWidgetPreviewLoader == null) { + mWidgetPreviewLoader = new WidgetPreviewLoader(mLauncher); + } + return mWidgetPreviewLoader; + } + /** Returns the item index of the center item on this page so that we can restore to this * item index when we rotate. */ private int getMiddleComponentIndexOnCurrentPage() { @@ -432,10 +439,6 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen } protected void onDataReady(int width, int height) { - if (mWidgetPreviewLoader == null) { - mWidgetPreviewLoader = new WidgetPreviewLoader(mLauncher); - } - // Now that the data is ready, we can calculate the content width, the number of cells to // use for each page LauncherAppState app = LauncherAppState.getInstance(); @@ -807,13 +810,13 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen int[] previewSizeBeforeScale = new int[1]; - preview = mWidgetPreviewLoader.generateWidgetPreview(createWidgetInfo.componentName, + preview = getWidgetPreviewLoader().generateWidgetPreview(createWidgetInfo.componentName, createWidgetInfo.previewImage, createWidgetInfo.icon, spanX, spanY, maxWidth, maxHeight, null, previewSizeBeforeScale); // Compare the size of the drag preview to the preview in the AppsCustomize tray int previewWidthInAppsCustomize = Math.min(previewSizeBeforeScale[0], - mWidgetPreviewLoader.maxWidthForWidgetPreview(spanX)); + getWidgetPreviewLoader().maxWidthForWidgetPreview(spanX)); scale = previewWidthInAppsCustomize / (float) preview.getWidth(); // The bitmap in the AppsCustomize tray is always the the same size, so there @@ -1267,7 +1270,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen // do cleanup inside onSyncWidgetPageItems onSyncWidgetPageItems(data, false); } - }, mWidgetPreviewLoader); + }, getWidgetPreviewLoader()); // Ensure that the task is appropriately prioritized and runs in parallel AppsCustomizeAsyncTask t = new AppsCustomizeAsyncTask(page, @@ -1328,7 +1331,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen createItemInfo.minSpanX = minSpanXY[0]; createItemInfo.minSpanY = minSpanXY[1]; - widget.applyFromAppWidgetProviderInfo(info, -1, spanXY, mWidgetPreviewLoader); + widget.applyFromAppWidgetProviderInfo(info, -1, spanXY, getWidgetPreviewLoader()); widget.setTag(createItemInfo); widget.setShortPressListener(this); } else if (rawInfo instanceof ResolveInfo) { @@ -1338,7 +1341,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen createItemInfo.itemType = LauncherSettings.Favorites.ITEM_TYPE_SHORTCUT; createItemInfo.componentName = new ComponentName(info.activityInfo.packageName, info.activityInfo.name); - widget.applyFromResolveInfo(mPackageManager, info, mWidgetPreviewLoader); + widget.applyFromResolveInfo(mPackageManager, info, getWidgetPreviewLoader()); widget.setTag(createItemInfo); } widget.setOnClickListener(this); @@ -1375,11 +1378,11 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen maxPreviewHeight = maxSize[1]; } - mWidgetPreviewLoader.setPreviewSize( + getWidgetPreviewLoader().setPreviewSize( maxPreviewWidth, maxPreviewHeight, mWidgetSpacingLayout); if (immediate) { AsyncTaskPageData data = new AsyncTaskPageData(page, items, - maxPreviewWidth, maxPreviewHeight, null, null, mWidgetPreviewLoader); + maxPreviewWidth, maxPreviewHeight, null, null, getWidgetPreviewLoader()); loadWidgetPreviewsInBackground(null, data); onSyncWidgetPageItems(data, immediate); } else { @@ -1416,7 +1419,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen task.syncThreadPriority(); } - images.add(mWidgetPreviewLoader.getPreview(items.get(i))); + images.add(getWidgetPreviewLoader().getPreview(items.get(i))); } } |