summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher2/AppsCustomizePagedView.java
diff options
context:
space:
mode:
authorMichael Jurka <mikejurka@google.com>2013-02-05 11:21:28 +0100
committerMichael Jurka <mikejurka@google.com>2013-02-05 11:25:29 +0100
commit3f4e070aa58d51dd136885b4d3e2e6c5d9f93ea0 (patch)
tree29ed7daa19107eeb011eec8748ce7de4f6dbcfd2 /src/com/android/launcher2/AppsCustomizePagedView.java
parent05713af127d765cc28a8b2fd548a90347c90d6cb (diff)
downloadandroid_packages_apps_Trebuchet-3f4e070aa58d51dd136885b4d3e2e6c5d9f93ea0.tar.gz
android_packages_apps_Trebuchet-3f4e070aa58d51dd136885b4d3e2e6c5d9f93ea0.tar.bz2
android_packages_apps_Trebuchet-3f4e070aa58d51dd136885b4d3e2e6c5d9f93ea0.zip
Fix crash when rotating all apps
Bug: 8134296
Diffstat (limited to 'src/com/android/launcher2/AppsCustomizePagedView.java')
-rw-r--r--src/com/android/launcher2/AppsCustomizePagedView.java24
1 files changed, 14 insertions, 10 deletions
diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java
index bfc2db02c..82d595b3d 100644
--- a/src/com/android/launcher2/AppsCustomizePagedView.java
+++ b/src/com/android/launcher2/AppsCustomizePagedView.java
@@ -75,7 +75,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>();
@@ -83,13 +83,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();
@@ -103,6 +104,7 @@ class AsyncTaskPageData {
int maxImageHeight;
AsyncTaskCallback doInBackgroundCallback;
AsyncTaskCallback postExecuteCallback;
+ WidgetPreviewLoader widgetPreviewLoader;
}
/**
@@ -346,6 +348,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;
@@ -1110,7 +1116,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,
@@ -1174,7 +1180,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) {
@@ -1184,7 +1190,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);
+ widget.applyFromResolveInfo(mPackageManager, info, mWidgetPreviewLoader);
widget.setTag(createItemInfo);
}
widget.setOnClickListener(this);
@@ -1221,13 +1227,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 {