diff options
author | Adam Cohen <adamcohen@google.com> | 2013-12-13 16:01:11 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-12-13 16:01:11 -0800 |
commit | f03960f7a64bf636a46282a67a18bc2351e514b0 (patch) | |
tree | 4066968cc637eb816e538b300ca9c90c59562848 | |
parent | 5f744f16a64f376c4ddddce05af01a12081f701c (diff) | |
parent | 309260ee593aa3f209510ae6bf137f9b75e2498b (diff) | |
download | android_packages_apps_Trebuchet-f03960f7a64bf636a46282a67a18bc2351e514b0.tar.gz android_packages_apps_Trebuchet-f03960f7a64bf636a46282a67a18bc2351e514b0.tar.bz2 android_packages_apps_Trebuchet-f03960f7a64bf636a46282a67a18bc2351e514b0.zip |
am 309260ee: Merge "Don\'t notifyPageSwitchListener until page settles (issue 12069757)" into jb-ub-now-kermit
* commit '309260ee593aa3f209510ae6bf137f9b75e2498b':
Don't notifyPageSwitchListener until page settles (issue 12069757)
-rw-r--r-- | src/com/android/launcher3/PagedView.java | 17 | ||||
-rw-r--r-- | src/com/android/launcher3/Workspace.java | 2 |
2 files changed, 16 insertions, 3 deletions
diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index 196913ef6..8d5d8dd4d 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -449,6 +449,10 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc return new PageIndicator.PageMarkerResources(); } + /** + * Add a page change listener which will be called when a page is _finished_ listening. + * + */ public void setPageSwitchListener(PageSwitchListener pageSwitchListener) { mPageSwitchListener = pageSwitchListener; if (mPageSwitchListener != null) { @@ -523,6 +527,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc */ void stopScrolling() { mCurrentPage = getNextPage(); + notifyPageSwitchListener(); forceFinishScroller(); } @@ -572,11 +577,19 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc return mRestorePage; } + /** + * Should be called whenever the page changes. In the case of a scroll, we wait until the page + * has settled. + */ protected void notifyPageSwitchListener() { if (mPageSwitchListener != null) { - mPageSwitchListener.onPageSwitch(getPageAt(mCurrentPage), mCurrentPage); + mPageSwitchListener.onPageSwitch(getPageAt(getNextPage()), getNextPage()); } + updatePageIndicator(); + } + + private void updatePageIndicator() { // Update the page indicator (when we aren't reordering) if (mPageIndicator != null && !isReordering(false)) { mPageIndicator.setActiveMarker(getNextPage()); @@ -2230,7 +2243,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc mScroller.startScroll(mUnboundedScrollX, 0, delta, 0, duration); - notifyPageSwitchListener(); + updatePageIndicator(); // Trigger a compute() to finish switching pages if necessary if (immediate) { diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index e6550bc70..b6276c0f2 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -1200,7 +1200,7 @@ public class Workspace extends SmoothPagedView @Override protected void notifyPageSwitchListener() { super.notifyPageSwitchListener(); - Launcher.setScreen(mCurrentPage); + Launcher.setScreen(getNextPage()); if (hasCustomContent() && getNextPage() == 0 && !mCustomContentShowing) { mCustomContentShowing = true; |