From e61a9a2cd4af5d1f345c6396d3013fea0aa1c767 Mon Sep 17 00:00:00 2001 From: Adam Cohen Date: Tue, 11 Jun 2013 15:45:31 -0700 Subject: Fix issue with setting the current page immediately after a page is added Change-Id: Ia9ddc42896b47b10bb98ed6bd6cece1b033207c1 --- src/com/android/launcher3/Launcher.java | 11 +++-------- src/com/android/launcher3/PagedView.java | 9 ++++++++- 2 files changed, 11 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 8e8e6ed72..32aed80ac 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -844,14 +844,9 @@ public class Launcher extends Activity mWorkspace.addView(customScreen, 0); - // We don't want to change the current or the default screen - mWorkspace.post(new Runnable() { - @Override - public void run() { - mWorkspace.incrementDefaultScreen(); - mWorkspace.setCurrentPage(mWorkspace.getCurrentPage() + 1); - } - }); + // Ensure that the current page and default page are maintained. + mWorkspace.incrementDefaultScreen(); + mWorkspace.setCurrentPage(mWorkspace.getCurrentPage() + 1); } @Override diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index 8716a33be..abf8bbd14 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -89,6 +89,8 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc protected boolean mFirstLayout = true; protected int mCurrentPage; + protected int mChildCountOnLastMeasure; + protected int mNextPage = INVALID_PAGE; protected int mMaxScrollX; protected Scroller mScroller; @@ -347,7 +349,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc return; } - + mForceScreenScrolled = true; mCurrentPage = Math.max(0, Math.min(currentPage, getPageCount() - 1)); updateCurrentPageScroll(); updateScrollingIndicator(); @@ -564,6 +566,11 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc // ensure that the cache is filled with good values. invalidateCachedOffsets(); + if (mChildCountOnLastMeasure != getChildCount()) { + setCurrentPage(mCurrentPage); + } + mChildCountOnLastMeasure = getChildCount(); + if (childCount > 0) { if (DEBUG) Log.d(TAG, "getRelativeChildOffset(): " + getMeasuredWidth() + ", " + getChildWidth(0)); -- cgit v1.2.3