diff options
author | Michael Jurka <mikejurka@google.com> | 2012-02-14 12:13:34 -0800 |
---|---|---|
committer | Winson Chung <winsonc@google.com> | 2012-02-14 13:36:59 -0800 |
commit | 9753d13c7bda09c1203c611ac6717021037f39c3 (patch) | |
tree | 1a948661436dab156c55110c4e781f8e0c626ba3 | |
parent | d83f5f4db328fbd152491bbf9fa13abc94bd6f25 (diff) | |
download | android_packages_apps_Trebuchet-9753d13c7bda09c1203c611ac6717021037f39c3.tar.gz android_packages_apps_Trebuchet-9753d13c7bda09c1203c611ac6717021037f39c3.tar.bz2 android_packages_apps_Trebuchet-9753d13c7bda09c1203c611ac6717021037f39c3.zip |
Revert "Speed up All Apps -> Workspace transition"
Temp fix for 5976264
This reverts commit 9433fa7ebad74320e39bfac6161a68bc850fe161.
Change-Id: Ic49ffc818b9b233b3717b52a5f77eaac1e001f5b
-rw-r--r-- | src/com/android/launcher2/AppsCustomizeTabHost.java | 7 | ||||
-rw-r--r-- | src/com/android/launcher2/Launcher.java | 78 | ||||
-rw-r--r-- | src/com/android/launcher2/PagedView.java | 2 | ||||
-rw-r--r-- | src/com/android/launcher2/SearchDropTargetBar.java | 12 | ||||
-rw-r--r-- | src/com/android/launcher2/Workspace.java | 68 |
5 files changed, 77 insertions, 90 deletions
diff --git a/src/com/android/launcher2/AppsCustomizeTabHost.java b/src/com/android/launcher2/AppsCustomizeTabHost.java index caababa8e..023946b26 100644 --- a/src/com/android/launcher2/AppsCustomizeTabHost.java +++ b/src/com/android/launcher2/AppsCustomizeTabHost.java @@ -347,8 +347,9 @@ public class AppsCustomizeTabHost extends TabHost implements LauncherTransitiona /* LauncherTransitionable overrides */ @Override - public void onLauncherTransitionStart(Launcher l, boolean animated, boolean toWorkspace) { + public void onLauncherTransitionStart(Launcher l, Animator animation, boolean toWorkspace) { mInTransition = true; + boolean animated = (animation != null); mContent.setVisibility(VISIBLE); @@ -371,9 +372,9 @@ public class AppsCustomizeTabHost extends TabHost implements LauncherTransitiona } @Override - public void onLauncherTransitionEnd(Launcher l, boolean animated, boolean toWorkspace) { + public void onLauncherTransitionEnd(Launcher l, Animator animation, boolean toWorkspace) { mInTransition = false; - if (animated) { + if (animation != null) { setLayerType(LAYER_TYPE_NONE, null); } diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java index 708d5d631..8cf0de6f7 100644 --- a/src/com/android/launcher2/Launcher.java +++ b/src/com/android/launcher2/Launcher.java @@ -2212,18 +2212,6 @@ public final class Launcher extends Activity } } - private void dispatchOnLauncherTransitionStart(View v, boolean animated, boolean toWorkspace) { - if (v instanceof LauncherTransitionable) { - ((LauncherTransitionable) v).onLauncherTransitionStart(this, animated, toWorkspace); - } - } - - private void dispatchOnLauncherTransitionEnd(View v, boolean animated, boolean toWorkspace) { - if (v instanceof LauncherTransitionable) { - ((LauncherTransitionable) v).onLauncherTransitionEnd(this, animated, toWorkspace); - } - } - /** * Things to test when changing the following seven functions. * - Home from workspace @@ -2269,7 +2257,7 @@ public final class Launcher extends Activity * Assumes that the view to show is anchored at either the very top or very bottom * of the screen. */ - private void showAppsCustomizeHelper(final boolean animated, final boolean springLoaded) { + private void showAppsCustomizeHelper(boolean animated, final boolean springLoaded) { if (mStateAnimation != null) { mStateAnimation.cancel(); mStateAnimation = null; @@ -2280,7 +2268,6 @@ public final class Launcher extends Activity final int duration = res.getInteger(R.integer.config_appsCustomizeZoomInTime); final int fadeDuration = res.getInteger(R.integer.config_appsCustomizeFadeInTime); final float scale = (float) res.getInteger(R.integer.config_appsCustomizeZoomScaleFactor); - final View fromView = mWorkspace; final View toView = mAppsCustomizeTabHost; final int startDelay = res.getInteger(R.integer.config_workspaceAppsCustomizeAnimationStagger); @@ -2327,8 +2314,10 @@ public final class Launcher extends Activity } @Override public void onAnimationEnd(Animator animation) { - dispatchOnLauncherTransitionEnd(fromView, animated, false); - dispatchOnLauncherTransitionEnd(toView, animated, false); + if (toView instanceof LauncherTransitionable) { + ((LauncherTransitionable) toView).onLauncherTransitionEnd(instance, + scaleAnim, false); + } if (!springLoaded && !LauncherApplication.isScreenLarge()) { // Hide the workspace scrollbar @@ -2351,14 +2340,14 @@ public final class Launcher extends Activity } boolean delayAnim = false; + LauncherTransitionable lt = (LauncherTransitionable) toView; final ViewTreeObserver observer; - dispatchOnLauncherTransitionStart(fromView, animated, false); - dispatchOnLauncherTransitionStart(toView, animated, false); + lt.onLauncherTransitionStart(instance, mStateAnimation, false); // If any of the objects being animated haven't been measured/laid out // yet, delay the animation until we get a layout pass - if ((((LauncherTransitionable) toView).getContent().getMeasuredWidth() == 0) || + if ((lt.getContent().getMeasuredWidth() == 0) || (mWorkspace.getMeasuredWidth() == 0) || (toView.getMeasuredWidth() == 0)) { observer = mWorkspace.getViewTreeObserver(); @@ -2397,16 +2386,16 @@ public final class Launcher extends Activity toView.setScaleY(1.0f); toView.setVisibility(View.VISIBLE); toView.bringToFront(); - - if (!springLoaded && !LauncherApplication.isScreenLarge()) { - // Hide the workspace scrollbar - mWorkspace.hideScrollingIndicator(true); - hideDockDivider(); + if (toView instanceof LauncherTransitionable) { + ((LauncherTransitionable) toView).onLauncherTransitionStart(instance, null, false); + ((LauncherTransitionable) toView).onLauncherTransitionEnd(instance, null, false); + + if (!springLoaded && !LauncherApplication.isScreenLarge()) { + // Hide the workspace scrollbar + mWorkspace.hideScrollingIndicator(true); + hideDockDivider(); + } } - dispatchOnLauncherTransitionStart(fromView, animated, false); - dispatchOnLauncherTransitionEnd(fromView, animated, false); - dispatchOnLauncherTransitionStart(toView, animated, false); - dispatchOnLauncherTransitionEnd(toView, animated, false); updateWallpaperVisibility(false); } } @@ -2418,12 +2407,12 @@ public final class Launcher extends Activity */ private void hideAppsCustomizeHelper(State toState, final boolean animated, final boolean springLoaded, final Runnable onCompleteRunnable) { - if (mStateAnimation != null) { mStateAnimation.cancel(); mStateAnimation = null; } Resources res = getResources(); + final Launcher instance = this; final int duration = res.getInteger(R.integer.config_appsCustomizeZoomOutTime); final int fadeOutDuration = @@ -2431,7 +2420,6 @@ public final class Launcher extends Activity final float scaleFactor = (float) res.getInteger(R.integer.config_appsCustomizeZoomScaleFactor); final View fromView = mAppsCustomizeTabHost; - final View toView = mWorkspace; Animator workspaceAnim = null; if (toState == State.WORKSPACE) { @@ -2462,18 +2450,19 @@ public final class Launcher extends Activity .setDuration(fadeOutDuration); alphaAnim.setInterpolator(new AccelerateDecelerateInterpolator()); - mStateAnimation = new AnimatorSet(); - - dispatchOnLauncherTransitionStart(fromView, animated, true); - dispatchOnLauncherTransitionStart(toView, animated, true); - - mStateAnimation.addListener(new AnimatorListenerAdapter() { + if (fromView instanceof LauncherTransitionable) { + ((LauncherTransitionable) fromView).onLauncherTransitionStart(instance, alphaAnim, + true); + } + alphaAnim.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { updateWallpaperVisibility(true); fromView.setVisibility(View.GONE); - dispatchOnLauncherTransitionEnd(fromView, animated, true); - dispatchOnLauncherTransitionEnd(toView, animated, true); + if (fromView instanceof LauncherTransitionable) { + ((LauncherTransitionable) fromView).onLauncherTransitionEnd(instance, + alphaAnim, true); + } mWorkspace.hideScrollingIndicator(false); if (onCompleteRunnable != null) { onCompleteRunnable.run(); @@ -2481,6 +2470,7 @@ public final class Launcher extends Activity } }); + mStateAnimation = new AnimatorSet(); mStateAnimation.playTogether(scaleAnim, alphaAnim); if (workspaceAnim != null) { mStateAnimation.play(workspaceAnim); @@ -2488,10 +2478,10 @@ public final class Launcher extends Activity mStateAnimation.start(); } else { fromView.setVisibility(View.GONE); - dispatchOnLauncherTransitionStart(fromView, animated, false); - dispatchOnLauncherTransitionEnd(fromView, animated, false); - dispatchOnLauncherTransitionStart(toView, animated, false); - dispatchOnLauncherTransitionEnd(toView, animated, false); + if (fromView instanceof LauncherTransitionable) { + ((LauncherTransitionable) fromView).onLauncherTransitionStart(instance, null, true); + ((LauncherTransitionable) fromView).onLauncherTransitionEnd(instance, null, true); + } mWorkspace.hideScrollingIndicator(false); } } @@ -3438,6 +3428,6 @@ public final class Launcher extends Activity interface LauncherTransitionable { View getContent(); - void onLauncherTransitionStart(Launcher l, boolean animated, boolean toWorkspace); - void onLauncherTransitionEnd(Launcher l, boolean animated, boolean toWorkspace); + void onLauncherTransitionStart(Launcher l, Animator animation, boolean toWorkspace); + void onLauncherTransitionEnd(Launcher l, Animator animation, boolean toWorkspace); } diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java index 7abe6e1d6..9a140d288 100644 --- a/src/com/android/launcher2/PagedView.java +++ b/src/com/android/launcher2/PagedView.java @@ -1680,7 +1680,6 @@ public abstract class PagedView extends ViewGroup { if (mHasScrollIndicator && mScrollIndicator == null) { ViewGroup parent = (ViewGroup) getParent(); mScrollIndicator = (View) (parent.findViewById(R.id.paged_view_indicator)); - mScrollIndicator.setLayerType(View.LAYER_TYPE_HARDWARE, null); mHasScrollIndicator = mScrollIndicator != null; if (mHasScrollIndicator) { mScrollIndicator.setVisibility(View.VISIBLE); @@ -1806,6 +1805,7 @@ public abstract class PagedView extends ViewGroup { indicatorPos += indicatorCenterOffset; } mScrollIndicator.setTranslationX(indicatorPos); + mScrollIndicator.invalidate(); } public void showScrollIndicatorTrack() { diff --git a/src/com/android/launcher2/SearchDropTargetBar.java b/src/com/android/launcher2/SearchDropTargetBar.java index 03ca38fb4..3a7f24b09 100644 --- a/src/com/android/launcher2/SearchDropTargetBar.java +++ b/src/com/android/launcher2/SearchDropTargetBar.java @@ -129,26 +129,14 @@ public class SearchDropTargetBar extends FrameLayout implements DragController.D @Override public void onAnimationStart(Animator animation) { mQSBSearchBar.setVisibility(View.VISIBLE); - mQSBSearchBar.setLayerType(View.LAYER_TYPE_HARDWARE, null); - } - - @Override - public void onAnimationEnd(Animator animation) { - mQSBSearchBar.setLayerType(View.LAYER_TYPE_NONE, null); } }); mQSBSearchBarFadeOutAnim = ObjectAnimator.ofFloat(mQSBSearchBar, "alpha", 0f); mQSBSearchBarFadeOutAnim.setDuration(sTransitionOutDuration); mQSBSearchBarFadeOutAnim.addListener(new AnimatorListenerAdapter() { @Override - public void onAnimationStart(Animator animation) { - mQSBSearchBar.setLayerType(View.LAYER_TYPE_HARDWARE, null); - } - - @Override public void onAnimationEnd(Animator animation) { mQSBSearchBar.setVisibility(View.INVISIBLE); - mQSBSearchBar.setLayerType(View.LAYER_TYPE_NONE, null); } }); } diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java index c8cab163c..811ed50c3 100644 --- a/src/com/android/launcher2/Workspace.java +++ b/src/com/android/launcher2/Workspace.java @@ -17,6 +17,8 @@ package com.android.launcher2; import android.animation.Animator; +import android.animation.Animator.AnimatorListener; +import android.animation.AnimatorListenerAdapter; import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.animation.TimeInterpolator; @@ -24,7 +26,6 @@ import android.animation.ValueAnimator; import android.animation.ValueAnimator.AnimatorUpdateListener; import android.app.AlertDialog; import android.app.WallpaperManager; -import android.appwidget.AppWidgetHostView; import android.appwidget.AppWidgetManager; import android.appwidget.AppWidgetProviderInfo; import android.content.ClipData; @@ -56,7 +57,6 @@ import android.view.DragEvent; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; -import android.view.View.MeasureSpec; import android.view.animation.DecelerateInterpolator; import android.widget.ImageView; import android.widget.TextView; @@ -77,7 +77,7 @@ import java.util.List; */ public class Workspace extends SmoothPagedView implements DropTarget, DragSource, DragScroller, View.OnTouchListener, - DragController.DragListener, LauncherTransitionable { + DragController.DragListener { @SuppressWarnings({"UnusedDeclaration"}) private static final String TAG = "Launcher.Workspace"; @@ -159,6 +159,8 @@ public class Workspace extends SmoothPagedView private State mState = State.NORMAL; private boolean mIsSwitchingState = false; + private AnimatorListener mChangeStateAnimationListener; + boolean mAnimatingViewIntoPlace = false; boolean mIsDragOccuring = false; boolean mChildrenLayersEnabled = true; @@ -385,6 +387,20 @@ public class Workspace extends SmoothPagedView // In this case, we will skip drawing background protection } + mChangeStateAnimationListener = new AnimatorListenerAdapter() { + @Override + public void onAnimationStart(Animator animation) { + mIsSwitchingState = true; + } + + @Override + public void onAnimationEnd(Animator animation) { + mIsSwitchingState = false; + mWallpaperOffset.setOverrideHorizontalCatchupConstant(false); + updateChildrenLayersEnabled(); + } + }; + mWallpaperOffset = new WallpaperOffsetInterpolator(); Display display = mLauncher.getWindowManager().getDefaultDisplay(); mDisplayWidth = display.getWidth(); @@ -1624,10 +1640,26 @@ public class Workspace extends SmoothPagedView cl.setBackgroundAlphaMultiplier(finalAlphaMultiplierValue); cl.setAlpha(finalAlpha); cl.setRotationY(rotation); + mChangeStateAnimationListener.onAnimationEnd(null); } } if (animated) { + anim.addListener(new AnimatorListenerAdapter() { + @Override + public void onAnimationEnd(android.animation.Animator animation) { + // The above code to determine initialAlpha and finalAlpha will ensure that only + // the current page is visible during (and subsequently, after) the transition + // animation. If fade adjacent pages is disabled, then re-enable the page + // visibility after the transition animation. + if (!mFadeInAdjacentScreens) { + for (int i = 0; i < getChildCount(); i++) { + final CellLayout cl = (CellLayout) getChildAt(i); + cl.setAlpha(1f); + } + } + } + }); for (int index = 0; index < getChildCount(); index++) { final int i = index; final CellLayout cl = (CellLayout) getChildAt(i); @@ -1683,6 +1715,9 @@ public class Workspace extends SmoothPagedView } } anim.setStartDelay(delay); + // If we call this when we're not animated, onAnimationEnd is never called on + // the listener; make sure we only use the listener when we're actually animating + anim.addListener(mChangeStateAnimationListener); } if (stateIsSpringLoaded) { @@ -1698,33 +1733,6 @@ public class Workspace extends SmoothPagedView return anim; } - @Override - public void onLauncherTransitionStart(Launcher l, boolean animated, boolean toWorkspace) { - mIsSwitchingState = true; - } - - @Override - public void onLauncherTransitionEnd(Launcher l, boolean animated, boolean toWorkspace) { - mIsSwitchingState = false; - mWallpaperOffset.setOverrideHorizontalCatchupConstant(false); - updateChildrenLayersEnabled(); - // The code in getChangeStateAnimation to determine initialAlpha and finalAlpha will ensure - // ensure that only the current page is visible during (and subsequently, after) the - // transition animation. If fade adjacent pages is disabled, then re-enable the page - // visibility after the transition animation. - if (!mFadeInAdjacentScreens) { - for (int i = 0; i < getChildCount(); i++) { - final CellLayout cl = (CellLayout) getChildAt(i); - cl.setAlpha(1f); - } - } - } - - @Override - public View getContent() { - return this; - } - /** * Draw the View v into the given Canvas. * |