diff options
author | Michael Jurka <mikejurka@google.com> | 2011-12-09 16:27:35 -0800 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-12-09 16:27:35 -0800 |
commit | c02e3932c382a1854ff39c5e2714d5c07c0a8bcd (patch) | |
tree | ffec5f7277a19e361b51c02c7cff8e7c8c6ed149 /src/com/android/launcher2/PagedView.java | |
parent | 2d1654b054eae4f08831f1c753c9ccc66a585980 (diff) | |
parent | 0cad1116add5303d7c06cc21182527cebc42aff6 (diff) | |
download | android_packages_apps_Trebuchet-c02e3932c382a1854ff39c5e2714d5c07c0a8bcd.tar.gz android_packages_apps_Trebuchet-c02e3932c382a1854ff39c5e2714d5c07c0a8bcd.tar.bz2 android_packages_apps_Trebuchet-c02e3932c382a1854ff39c5e2714d5c07c0a8bcd.zip |
Merge "Reduce peak memory use in PagedView"
Diffstat (limited to 'src/com/android/launcher2/PagedView.java')
-rw-r--r-- | src/com/android/launcher2/PagedView.java | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java index 1d91f3c96..2db03da19 100644 --- a/src/com/android/launcher2/PagedView.java +++ b/src/com/android/launcher2/PagedView.java @@ -1600,22 +1600,29 @@ public abstract class PagedView extends ViewGroup { int upperPageBound = getAssociatedUpperPageBound(page); if (DEBUG) Log.d(TAG, "loadAssociatedPages: " + lowerPageBound + "/" + upperPageBound); + // First, clear any pages that should no longer be loaded + for (int i = 0; i < count; ++i) { + Page layout = (Page) getPageAt(i); + if ((immediateAndOnly && i != page) || + (i < lowerPageBound) || + (i > upperPageBound)) { + if (layout.getPageChildCount() > 0) { + layout.removeAllViewsOnPage(); + } + mDirtyPageContent.set(i, true); + } + } + // Next, load any new pages for (int i = 0; i < count; ++i) { if ((i != page) && immediateAndOnly) { continue; } Page layout = (Page) getPageAt(i); - final int childCount = layout.getPageChildCount(); if (lowerPageBound <= i && i <= upperPageBound) { if (mDirtyPageContent.get(i)) { syncPageItems(i, (i == page) && immediateAndOnly); mDirtyPageContent.set(i, false); } - } else { - if (childCount > 0) { - layout.removeAllViewsOnPage(); - } - mDirtyPageContent.set(i, true); } } } |