diff options
author | Michael Jurka <mikejurka@google.com> | 2011-11-09 22:09:06 -0800 |
---|---|---|
committer | Michael Jurka <mikejurka@google.com> | 2011-11-10 02:36:08 -0800 |
commit | dde558b8b8bcf3fac6d2ceceafa1f7546f98a264 (patch) | |
tree | 83baddf11e60cb2b8d17bec31c97bfb8bd35b456 /src/com/android/launcher2/PagedView.java | |
parent | ec8bd08ad950bdfed8ad0d15f74f8f7c98fa1b3c (diff) | |
download | android_packages_apps_Trebuchet-dde558b8b8bcf3fac6d2ceceafa1f7546f98a264.tar.gz android_packages_apps_Trebuchet-dde558b8b8bcf3fac6d2ceceafa1f7546f98a264.tar.bz2 android_packages_apps_Trebuchet-dde558b8b8bcf3fac6d2ceceafa1f7546f98a264.zip |
resolved conflicts for merge of b9c76f32 to ics-mr1
Change-Id: I7579e312c48c9f9279e93283629036a9332aa34c
Diffstat (limited to 'src/com/android/launcher2/PagedView.java')
-rw-r--r-- | src/com/android/launcher2/PagedView.java | 41 |
1 files changed, 27 insertions, 14 deletions
diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java index 2de7d4a4b..0ba4f0b47 100644 --- a/src/com/android/launcher2/PagedView.java +++ b/src/com/android/launcher2/PagedView.java @@ -127,6 +127,7 @@ public abstract class PagedView extends ViewGroup { protected boolean mCenterPagesVertically; protected boolean mAllowOverScroll = true; protected int mUnboundedScrollX; + protected int[] mTempVisiblePagesRange = new int[2]; // parameter that adjusts the layout to be optimized for pages with that scale factor protected float mLayoutScale = 1.0f; @@ -701,20 +702,7 @@ public abstract class PagedView extends ViewGroup { return (int) (maxWidth * mLayoutScale + 0.5f); } - @Override - protected void dispatchDraw(Canvas canvas) { - int halfScreenSize = getMeasuredWidth() / 2; - int screenCenter = mScrollX + halfScreenSize; - - if (screenCenter != mLastScreenCenter || mForceScreenScrolled) { - screenScrolled(screenCenter); - mLastScreenCenter = screenCenter; - mForceScreenScrolled = false; - } - - // Find out which screens are visible; as an optimization we only call draw on them - // As an optimization, this code assumes that all pages have the same width as the 0th - // page. + protected void getVisiblePages(int[] range) { final int pageCount = getChildCount(); if (pageCount > 0) { final int pageWidth = getScaledMeasuredWidth(getPageAt(0)); @@ -731,6 +719,31 @@ public abstract class PagedView extends ViewGroup { rightScreen++; x += getScaledMeasuredWidth(getPageAt(rightScreen)) + mPageSpacing; } + range[0] = leftScreen; + range[1] = rightScreen; + } else { + range[0] = -1; + range[1] = -1; + } + } + + @Override + protected void dispatchDraw(Canvas canvas) { + int halfScreenSize = getMeasuredWidth() / 2; + int screenCenter = mScrollX + halfScreenSize; + + if (screenCenter != mLastScreenCenter || mForceScreenScrolled) { + screenScrolled(screenCenter); + mLastScreenCenter = screenCenter; + mForceScreenScrolled = false; + } + + // Find out which screens are visible; as an optimization we only call draw on them + final int pageCount = getChildCount(); + if (pageCount > 0) { + getVisiblePages(mTempVisiblePagesRange); + final int leftScreen = mTempVisiblePagesRange[0]; + final int rightScreen = mTempVisiblePagesRange[1]; final long drawingTime = getDrawingTime(); // Clip to the bounds |