summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/Workspace.java
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2016-07-20 18:59:20 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2016-07-20 18:59:20 +0000
commit5bc04e67f7928eb5a107c2512c7f3d84ab363609 (patch)
treef937078f7ce008574a27122548fc9fe8f5fa5f1f /src/com/android/launcher3/Workspace.java
parentc80a024fb035657cafb63295e317e75af742d3e6 (diff)
parentc553c33ae6824cf9b2f3274a9a5d275445ac1968 (diff)
downloadandroid_packages_apps_Trebuchet-5bc04e67f7928eb5a107c2512c7f3d84ab363609.tar.gz
android_packages_apps_Trebuchet-5bc04e67f7928eb5a107c2512c7f3d84ab363609.tar.bz2
android_packages_apps_Trebuchet-5bc04e67f7928eb5a107c2512c7f3d84ab363609.zip
Merge "Protecting QSB scroll while transition animation is running." into ub-launcher3-calgary
Diffstat (limited to 'src/com/android/launcher3/Workspace.java')
-rw-r--r--src/com/android/launcher3/Workspace.java34
1 files changed, 32 insertions, 2 deletions
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index bcd87b5a9..75d4a8d3d 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -313,6 +313,7 @@ public class Workspace extends PagedView
// Total over scrollX in the overlay direction.
private float mOverlayTranslation;
private int mFirstPageScrollX;
+ private boolean mIgnoreQsbScroll;
// Handles workspace state transitions
private WorkspaceStateTransitionAnimation mStateTransitionAnimation;
@@ -1384,8 +1385,10 @@ public class Workspace extends PagedView
}
private void onWorkspaceOverallScrollChanged() {
- mLauncher.getQsbContainer().setTranslationX(
- mOverlayTranslation + mFirstPageScrollX - getScrollX());
+ if (!mIgnoreQsbScroll) {
+ mLauncher.getQsbContainer().setTranslationX(
+ mOverlayTranslation + mFirstPageScrollX - getScrollX());
+ }
}
@Override
@@ -1797,6 +1800,33 @@ public class Workspace extends PagedView
super.onLayout(changed, left, top, right, bottom);
mFirstPageScrollX = getScrollForPage(0);
onWorkspaceOverallScrollChanged();
+
+ final LayoutTransition transition = getLayoutTransition();
+ // If the transition is running defer updating max scroll, as some empty pages could
+ // still be present, and a max scroll change could cause sudden jumps in scroll.
+ if (transition != null && transition.isRunning()) {
+ transition.addTransitionListener(new LayoutTransition.TransitionListener() {
+
+ @Override
+ public void startTransition(LayoutTransition transition, ViewGroup container,
+ View view, int transitionType) {
+ mIgnoreQsbScroll = true;
+ }
+
+ @Override
+ public void endTransition(LayoutTransition transition, ViewGroup container,
+ View view, int transitionType) {
+ // Wait until all transitions are complete.
+ if (!transition.isRunning()) {
+ mIgnoreQsbScroll = false;
+ transition.removeTransitionListener(this);
+ mFirstPageScrollX = getScrollForPage(0);
+ onWorkspaceOverallScrollChanged();
+ }
+ }
+ });
+ }
+
}
@Override