summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/Workspace.java
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2016-10-26 19:12:47 -0700
committerSunny Goyal <sunnygoyal@google.com>2016-11-14 17:43:31 -0800
commitdb364379312e56a3a3905a54d0de783062a92a73 (patch)
treea230d1647771f8310956ea2a003512bfe297c669 /src/com/android/launcher3/Workspace.java
parentb79692b26f16dc4a3a95a8c7c1b5c772a530e3c2 (diff)
downloadandroid_packages_apps_Trebuchet-db364379312e56a3a3905a54d0de783062a92a73.tar.gz
android_packages_apps_Trebuchet-db364379312e56a3a3905a54d0de783062a92a73.tar.bz2
android_packages_apps_Trebuchet-db364379312e56a3a3905a54d0de783062a92a73.zip
Moving saving state transtion listener logic to individual views
Change-Id: If5402b6961d7d6be0c50778f27a8746ed6f1bbfb
Diffstat (limited to 'src/com/android/launcher3/Workspace.java')
-rw-r--r--src/com/android/launcher3/Workspace.java67
1 files changed, 41 insertions, 26 deletions
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 95a5ee29f..0dd762f1f 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -48,6 +48,7 @@ import android.view.View;
import android.view.ViewDebug;
import android.view.ViewGroup;
import android.view.accessibility.AccessibilityManager;
+import android.view.animation.Animation.AnimationListener;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.Interpolator;
import android.widget.TextView;
@@ -96,7 +97,7 @@ import java.util.HashSet;
*/
public class Workspace extends PagedView
implements DropTarget, DragSource, DragScroller, View.OnTouchListener,
- DragController.DragListener, LauncherTransitionable, ViewGroup.OnHierarchyChangeListener,
+ DragController.DragListener, ViewGroup.OnHierarchyChangeListener,
Insettable, DropTargetSource {
private static final String TAG = "Launcher.Workspace";
@@ -2048,6 +2049,20 @@ public class Workspace extends PagedView
mOnStateChangeListener.prepareStateChange(toState, animated ? workspaceAnim : null);
}
+ onPrepareStateTransition(mState.hasMultipleVisiblePages);
+
+ StateTransitionListener listener = new StateTransitionListener();
+ if (animated) {
+ ValueAnimator stepAnimator = ValueAnimator.ofFloat(0, 1);
+ stepAnimator.addListener(listener);
+
+ workspaceAnim.play(stepAnimator);
+ workspaceAnim.addListener(listener);
+ } else {
+ listener.onAnimationStart(null);
+ listener.onAnimationEnd(null);
+ }
+
return workspaceAnim;
}
@@ -2100,9 +2115,7 @@ public class Workspace extends PagedView
}
}
- @Override
- public void onLauncherTransitionPrepare(Launcher l, boolean animated,
- boolean multiplePagesVisible) {
+ public void onPrepareStateTransition(boolean multiplePagesVisible) {
mIsSwitchingState = true;
mTransitionProgress = 0;
@@ -2115,32 +2128,12 @@ public class Workspace extends PagedView
hideCustomContentIfNecessary();
}
- @Override
- public void onLauncherTransitionStart(Launcher l, boolean animated, boolean toWorkspace) {
- if (mPageIndicator != null) {
- boolean isNewStateSpringLoaded = mState == State.SPRING_LOADED;
- mPageIndicator.setShouldAutoHide(!isNewStateSpringLoaded);
- if (isNewStateSpringLoaded) {
- // Show the page indicator at the same time as the rest of the transition.
- showPageIndicatorAtCurrentScroll();
- }
- }
- }
-
- @Override
- public void onLauncherTransitionStep(Launcher l, float t) {
- mTransitionProgress = t;
- }
-
- @Override
- public void onLauncherTransitionEnd(Launcher l, boolean animated, boolean toWorkspace) {
+ public void onEndStateTransition() {
mIsSwitchingState = false;
updateChildrenLayersEnabled(false);
showCustomContentIfNecessary();
mForceDrawAdjacentPages = false;
- if (mState == State.SPRING_LOADED) {
- showPageIndicatorAtCurrentScroll();
- }
+ mTransitionProgress = 1;
}
void updateCustomContentVisibility() {
@@ -4275,4 +4268,26 @@ public class Workspace extends PagedView
public static final boolean isQsbContainerPage(int pageNo) {
return pageNo == 0;
}
+
+ private class StateTransitionListener extends AnimatorListenerAdapter
+ implements AnimatorUpdateListener {
+ @Override
+ public void onAnimationUpdate(ValueAnimator anim) {
+ mTransitionProgress = anim.getAnimatedFraction();
+ }
+
+ @Override
+ public void onAnimationStart(Animator animation) {
+ if (mState == State.SPRING_LOADED) {
+ // Show the page indicator at the same time as the rest of the transition.
+ showPageIndicatorAtCurrentScroll();
+ }
+ mTransitionProgress = 0;
+ }
+
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ onEndStateTransition();
+ }
+ }
}