diff options
author | Jonathan Miranda <jonmiranda@google.com> | 2018-06-21 00:30:02 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2018-06-21 00:30:02 +0000 |
commit | 48010091f45e01c0d05f7266c9ef4b1d99704a29 (patch) | |
tree | f3919c8578b0ab38ad63e5e56586a287ca8e01f0 /src | |
parent | b0ab81633d1215e1dd3e5cb35981fbe4cdecb5be (diff) | |
parent | 17be4e71b2f6733b4ea4dd52c3a46e8b5ec0d360 (diff) | |
download | android_packages_apps_Trebuchet-48010091f45e01c0d05f7266c9ef4b1d99704a29.tar.gz android_packages_apps_Trebuchet-48010091f45e01c0d05f7266c9ef4b1d99704a29.tar.bz2 android_packages_apps_Trebuchet-48010091f45e01c0d05f7266c9ef4b1d99704a29.zip |
Merge "Adjust interpolators when swiping from overview to all apps" into ub-launcher3-edmonton-polish
Diffstat (limited to 'src')
4 files changed, 25 insertions, 13 deletions
diff --git a/src/com/android/launcher3/allapps/AllAppsTransitionController.java b/src/com/android/launcher3/allapps/AllAppsTransitionController.java index ccd55863c..24a8d5145 100644 --- a/src/com/android/launcher3/allapps/AllAppsTransitionController.java +++ b/src/com/android/launcher3/allapps/AllAppsTransitionController.java @@ -5,6 +5,7 @@ import static com.android.launcher3.LauncherState.ALL_APPS_HEADER; import static com.android.launcher3.LauncherState.ALL_APPS_HEADER_EXTRA; import static com.android.launcher3.LauncherState.OVERVIEW; import static com.android.launcher3.LauncherState.VERTICAL_SWIPE_INDICATOR; +import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_ALL_APPS_FADE; import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_OVERVIEW_SCALE; import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_VERTICAL_PROGRESS; import static com.android.launcher3.anim.Interpolators.FAST_OUT_SLOW_IN; @@ -151,7 +152,7 @@ public class AllAppsTransitionController implements StateHandler, OnDeviceProfil @Override public void setState(LauncherState state) { setProgress(state.getVerticalProgress(mLauncher)); - setAlphas(state, NO_ANIM_PROPERTY_SETTER); + setAlphas(state, null, new AnimatorSetBuilder()); onProgressAnimationEnd(); } @@ -164,7 +165,7 @@ public class AllAppsTransitionController implements StateHandler, OnDeviceProfil AnimatorSetBuilder builder, AnimationConfig config) { float targetProgress = toState.getVerticalProgress(mLauncher); if (Float.compare(mProgress, targetProgress) == 0) { - setAlphas(toState, config.getPropertySetter(builder)); + setAlphas(toState, config, builder); // Fail fast onProgressAnimationEnd(); return; @@ -186,19 +187,24 @@ public class AllAppsTransitionController implements StateHandler, OnDeviceProfil builder.play(anim); - setAlphas(toState, config.getPropertySetter(builder)); + setAlphas(toState, config, builder); } - private void setAlphas(LauncherState toState, PropertySetter setter) { + private void setAlphas(LauncherState toState, AnimationConfig config, + AnimatorSetBuilder builder) { + PropertySetter setter = config == null ? NO_ANIM_PROPERTY_SETTER + : config.getPropertySetter(builder); int visibleElements = toState.getVisibleElements(mLauncher); boolean hasHeader = (visibleElements & ALL_APPS_HEADER) != 0; boolean hasHeaderExtra = (visibleElements & ALL_APPS_HEADER_EXTRA) != 0; boolean hasContent = (visibleElements & ALL_APPS_CONTENT) != 0; - setter.setViewAlpha(mAppsView.getSearchView(), hasHeader ? 1 : 0, LINEAR); - setter.setViewAlpha(mAppsView.getContentView(), hasContent ? 1 : 0, LINEAR); - setter.setViewAlpha(mAppsView.getScrollBar(), hasContent ? 1 : 0, LINEAR); - mAppsView.getFloatingHeaderView().setContentVisibility(hasHeaderExtra, hasContent, setter); + Interpolator allAppsFade = builder.getInterpolator(ANIM_ALL_APPS_FADE, LINEAR); + setter.setViewAlpha(mAppsView.getSearchView(), hasHeader ? 1 : 0, allAppsFade); + setter.setViewAlpha(mAppsView.getContentView(), hasContent ? 1 : 0, allAppsFade); + setter.setViewAlpha(mAppsView.getScrollBar(), hasContent ? 1 : 0, allAppsFade); + mAppsView.getFloatingHeaderView().setContentVisibility(hasHeaderExtra, hasContent, setter, + allAppsFade); setter.setInt(mScrimView, ScrimView.DRAG_HANDLE_ALPHA, (visibleElements & VERTICAL_SWIPE_INDICATOR) != 0 ? 255 : 0, LINEAR); diff --git a/src/com/android/launcher3/allapps/FloatingHeaderView.java b/src/com/android/launcher3/allapps/FloatingHeaderView.java index 462e7f34e..eaa777416 100644 --- a/src/com/android/launcher3/allapps/FloatingHeaderView.java +++ b/src/com/android/launcher3/allapps/FloatingHeaderView.java @@ -15,8 +15,6 @@ */ package com.android.launcher3.allapps; -import static com.android.launcher3.anim.Interpolators.LINEAR; - import android.animation.ValueAnimator; import android.content.Context; import android.graphics.Point; @@ -28,6 +26,7 @@ import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; +import android.view.animation.Interpolator; import android.widget.LinearLayout; import com.android.launcher3.R; @@ -227,8 +226,9 @@ public class FloatingHeaderView extends LinearLayout implements p.y = getTop() - mCurrentRV.getTop() - mParent.getTop(); } - public void setContentVisibility(boolean hasHeader, boolean hasContent, PropertySetter setter) { - setter.setViewAlpha(this, hasContent ? 1 : 0, LINEAR); + public void setContentVisibility(boolean hasHeader, boolean hasContent, PropertySetter setter, + Interpolator fadeInterpolator) { + setter.setViewAlpha(this, hasContent ? 1 : 0, fadeInterpolator); allowTouchForwarding(hasContent); } diff --git a/src/com/android/launcher3/anim/AnimatorSetBuilder.java b/src/com/android/launcher3/anim/AnimatorSetBuilder.java index f10bce8d2..307f25856 100644 --- a/src/com/android/launcher3/anim/AnimatorSetBuilder.java +++ b/src/com/android/launcher3/anim/AnimatorSetBuilder.java @@ -35,6 +35,7 @@ public class AnimatorSetBuilder { public static final int ANIM_WORKSPACE_FADE = 2; public static final int ANIM_OVERVIEW_SCALE = 3; public static final int ANIM_OVERVIEW_FADE = 4; + public static final int ANIM_ALL_APPS_FADE = 5; protected final ArrayList<Animator> mAnims = new ArrayList<>(); diff --git a/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java b/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java index 0d2bcb2c5..d478d4865 100644 --- a/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java +++ b/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java @@ -341,7 +341,7 @@ public abstract class AbstractStateChangeTouchController private AnimatorSet createAtomicAnimForState(LauncherState fromState, LauncherState targetState, long duration) { - AnimatorSetBuilder builder = new AnimatorSetBuilder(); + AnimatorSetBuilder builder = getAnimatorSetBuilderForStates(fromState, targetState); mLauncher.getStateManager().prepareForAtomicAnimation(fromState, targetState, builder); AnimationConfig config = new AnimationConfig(); config.animComponents = ATOMIC_COMPONENT; @@ -352,6 +352,11 @@ public abstract class AbstractStateChangeTouchController return builder.build(); } + protected AnimatorSetBuilder getAnimatorSetBuilderForStates(LauncherState fromState, + LauncherState toState) { + return new AnimatorSetBuilder(); + } + @Override public void onDragEnd(float velocity, boolean fling) { final int logAction = fling ? Touch.FLING : Touch.SWIPE; |