Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 08101b1f authored by Adam Cohen's avatar Adam Cohen Committed by Android (Google) Code Review
Browse files

Merge "Lazy load the widget preview loader class" into jb-ub-now-kermit

parents e1b0682a 9c5cc5a8
Loading
Loading
Loading
Loading
+16 −13
Original line number Diff line number Diff line
@@ -299,6 +299,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() {
@@ -364,10 +371,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();
@@ -727,13 +730,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
@@ -1147,7 +1150,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,
@@ -1208,7 +1211,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) {
@@ -1218,7 +1221,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);
@@ -1255,11 +1258,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 {
@@ -1296,7 +1299,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
                task.syncThreadPriority();
            }

            images.add(mWidgetPreviewLoader.getPreview(items.get(i)));
            images.add(getWidgetPreviewLoader().getPreview(items.get(i)));
        }
    }