summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorAdam Cohen <adamcohen@google.com>2013-12-13 15:07:14 -0800
committerDanesh M <daneshm90@gmail.com>2014-06-06 22:54:23 -0700
commit0e2292f1b24de1db3917fb66ae124e867919cc5c (patch)
treeae68ffe598f804acfe1a8341b966104c5572aef2 /src
parentd1006eadaa4a692669de714ad9b1438dff399fc3 (diff)
downloadandroid_packages_apps_Trebuchet-0e2292f1b24de1db3917fb66ae124e867919cc5c.tar.gz
android_packages_apps_Trebuchet-0e2292f1b24de1db3917fb66ae124e867919cc5c.tar.bz2
android_packages_apps_Trebuchet-0e2292f1b24de1db3917fb66ae124e867919cc5c.zip
Don't notifyPageSwitchListener until page settles (issue 12069757)
-> Should address the dismiss timer not working quite right Change-Id: I63ad32d8f7c37f1a090ff1dd6024eeb7c0c6ce65
Diffstat (limited to 'src')
-rw-r--r--src/com/android/launcher3/PagedView.java17
-rw-r--r--src/com/android/launcher3/Workspace.java2
2 files changed, 16 insertions, 3 deletions
diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java
index f89f7157c..59292a0c8 100644
--- a/src/com/android/launcher3/PagedView.java
+++ b/src/com/android/launcher3/PagedView.java
@@ -464,6 +464,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) {
@@ -538,6 +542,7 @@ public abstract class PagedView extends ViewGroup implements ViewGroup.OnHierarc
*/
void stopScrolling() {
mCurrentPage = getNextPage();
+ notifyPageSwitchListener();
forceFinishScroller();
}
@@ -587,11 +592,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());
@@ -2345,7 +2358,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 9c7e9e805..f62e010e4 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -1283,7 +1283,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;