summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher2/PagedView.java
diff options
context:
space:
mode:
authorMichael Jurka <mikejurka@google.com>2011-12-09 16:27:35 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-12-09 16:27:35 -0800
commitc02e3932c382a1854ff39c5e2714d5c07c0a8bcd (patch)
treeffec5f7277a19e361b51c02c7cff8e7c8c6ed149 /src/com/android/launcher2/PagedView.java
parent2d1654b054eae4f08831f1c753c9ccc66a585980 (diff)
parent0cad1116add5303d7c06cc21182527cebc42aff6 (diff)
downloadandroid_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.java19
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);
}
}
}