Deferring create hardware layers until we load widget pages. (5330412)
Change-Id: Ia1b5e3ec3db7b7de4b0a76486136ba9df07ff70f
diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java
index 96859d3..6493e97 100644
--- a/src/com/android/launcher2/AppsCustomizePagedView.java
+++ b/src/com/android/launcher2/AppsCustomizePagedView.java
@@ -600,6 +600,19 @@
}
}
+ @Override
+ protected void onDetachedFromWindow() {
+ super.onDetachedFromWindow();
+
+ // Clean up all the async tasks
+ Iterator<AppsCustomizeAsyncTask> iter = mRunningTasks.iterator();
+ while (iter.hasNext()) {
+ AppsCustomizeAsyncTask task = (AppsCustomizeAsyncTask) iter.next();
+ task.cancel(false);
+ iter.remove();
+ }
+ }
+
public void setContentType(ContentType type) {
mContentType = type;
invalidatePageData(0, (type != ContentType.Applications));
@@ -982,7 +995,6 @@
prepareLoadWidgetPreviewsTask(page, items, cellWidth, cellHeight, mWidgetCountX);
}
PagedViewGridLayout layout = (PagedViewGridLayout) getPageAt(page);
- layout.createHardwareLayer();
}
private void loadWidgetPreviewsInBackground(AppsCustomizeAsyncTask task,
AsyncTaskPageData data) {
@@ -1073,6 +1085,7 @@
if (iy > 0) lp.topMargin = mWidgetHeightGap;
layout.addView(widget, lp);
}
+ layout.createHardwareLayer();
invalidate();
forceUpdateAdjacentPagesAlpha();