summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java
diff options
context:
space:
mode:
authorTony Wickham <twickham@google.com>2018-05-16 12:23:12 -0700
committerTony Wickham <twickham@google.com>2018-05-16 15:59:31 -0700
commitb2ddf10041c80d26012469dfd3bb1b259da1bd94 (patch)
tree3777af607adcb610bf08c822ec5805afbae93b83 /src/com/android/launcher3/WorkspaceStateTransitionAnimation.java
parent07b8b0b1f091ef7de2a8b706f90f503298932658 (diff)
downloadandroid_packages_apps_Trebuchet-b2ddf10041c80d26012469dfd3bb1b259da1bd94.tar.gz
android_packages_apps_Trebuchet-b2ddf10041c80d26012469dfd3bb1b259da1bd94.tar.bz2
android_packages_apps_Trebuchet-b2ddf10041c80d26012469dfd3bb1b259da1bd94.zip
Update interpolators and durations for state animations
When we enter overview (overview appears, workspace disappears): - Workspace scales down from 1f to .8f with OvershootInterpolator(1.2f) at 200 ms - Workspace fades from 1f to 0 with OvershootInterpolator(1.2f) at 200 ms - Overview scales down from 1.33f to 1f with OvershootInterpolator(1.2f) at 200 ms - Overview fades from 0 to 1f with OvershootInterpolator(1.2f) at 200 ms When we exit overview (overview disappears, workspace appears): - Workspace scales up from .92f to .1f with DecelerateInterpolator() at 200 ms - Workspace fades from 0 to 1f with AccelerateInterpolator() at 200 ms - Overview scales up from 1f to 1.1f with AccelerateInterpolator() at 180ms - Overview fades from 1f to 0 with DecelerateInterpolator(1.7f) at 200 ms Parallax while the finger moves: Workspace translates half the distance as the shelf Bug: 79776746 Change-Id: I319d982cf202bcd6dbbcd68ffc5c0c7853629c7e
Diffstat (limited to 'src/com/android/launcher3/WorkspaceStateTransitionAnimation.java')
-rw-r--r--src/com/android/launcher3/WorkspaceStateTransitionAnimation.java45
1 files changed, 25 insertions, 20 deletions
diff --git a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java
index 9f26e4a78..e734e7053 100644
--- a/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java
+++ b/src/com/android/launcher3/WorkspaceStateTransitionAnimation.java
@@ -20,6 +20,10 @@ import static com.android.launcher3.LauncherAnimUtils.DRAWABLE_ALPHA;
import static com.android.launcher3.LauncherAnimUtils.SCALE_PROPERTY;
import static com.android.launcher3.LauncherState.HOTSEAT_ICONS;
import static com.android.launcher3.LauncherState.HOTSEAT_SEARCH_BOX;
+import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_WORKSPACE_FADE;
+import static com.android.launcher3.anim.AnimatorSetBuilder.ANIM_WORKSPACE_SCALE;
+import static com.android.launcher3.anim.Interpolators.LINEAR;
+import static com.android.launcher3.anim.Interpolators.ZOOM_OUT;
import static com.android.launcher3.anim.PropertySetter.NO_ANIM_PROPERTY_SETTER;
import static com.android.launcher3.graphics.WorkspaceAndHotseatScrim.SCRIM_PROGRESS;
import static com.android.launcher3.graphics.WorkspaceAndHotseatScrim.SYSUI_PROGRESS;
@@ -30,7 +34,6 @@ import android.view.animation.Interpolator;
import com.android.launcher3.LauncherState.PageAlphaProvider;
import com.android.launcher3.LauncherStateManager.AnimationConfig;
import com.android.launcher3.anim.AnimatorSetBuilder;
-import com.android.launcher3.anim.Interpolators;
import com.android.launcher3.anim.PropertySetter;
import com.android.launcher3.graphics.WorkspaceAndHotseatScrim;
@@ -50,12 +53,13 @@ public class WorkspaceStateTransitionAnimation {
}
public void setState(LauncherState toState) {
- setWorkspaceProperty(toState, NO_ANIM_PROPERTY_SETTER, new AnimationConfig());
+ setWorkspaceProperty(toState, NO_ANIM_PROPERTY_SETTER, new AnimatorSetBuilder(),
+ new AnimationConfig());
}
public void setStateWithAnimation(LauncherState toState, AnimatorSetBuilder builder,
AnimationConfig config) {
- setWorkspaceProperty(toState, config.getPropertySetter(builder), config);
+ setWorkspaceProperty(toState, config.getPropertySetter(builder), builder, config);
}
public float getFinalScale() {
@@ -66,26 +70,28 @@ public class WorkspaceStateTransitionAnimation {
* Starts a transition animation for the workspace.
*/
private void setWorkspaceProperty(LauncherState state, PropertySetter propertySetter,
- AnimationConfig config) {
+ AnimatorSetBuilder builder, AnimationConfig config) {
float[] scaleAndTranslation = state.getWorkspaceScaleAndTranslation(mLauncher);
mNewScale = scaleAndTranslation[0];
PageAlphaProvider pageAlphaProvider = state.getWorkspacePageAlphaProvider(mLauncher);
final int childCount = mWorkspace.getChildCount();
for (int i = 0; i < childCount; i++) {
applyChildState(state, (CellLayout) mWorkspace.getChildAt(i), i, pageAlphaProvider,
- propertySetter, config);
+ propertySetter, builder, config);
}
-
int elements = state.getVisibleElements(mLauncher);
+ Interpolator fadeInterpolator = builder.getInterpolator(ANIM_WORKSPACE_FADE,
+ pageAlphaProvider.interpolator);
boolean playAtomicComponent = config.playAtomicComponent();
if (playAtomicComponent) {
- propertySetter.setFloat(mWorkspace, SCALE_PROPERTY, mNewScale, Interpolators.ZOOM_OUT);
+ Interpolator scaleInterpolator = builder.getInterpolator(ANIM_WORKSPACE_SCALE, ZOOM_OUT);
+ propertySetter.setFloat(mWorkspace, SCALE_PROPERTY, mNewScale, scaleInterpolator);
float hotseatIconsAlpha = (elements & HOTSEAT_ICONS) != 0 ? 1 : 0;
propertySetter.setViewAlpha(mLauncher.getHotseat().getLayout(), hotseatIconsAlpha,
- pageAlphaProvider.interpolator);
+ fadeInterpolator);
propertySetter.setViewAlpha(mLauncher.getWorkspace().getPageIndicator(),
- hotseatIconsAlpha, pageAlphaProvider.interpolator);
+ hotseatIconsAlpha, fadeInterpolator);
}
if (!config.playNonAtomicComponent()) {
@@ -93,43 +99,42 @@ public class WorkspaceStateTransitionAnimation {
return;
}
- Interpolator translationInterpolator = !playAtomicComponent ? Interpolators.LINEAR
- : Interpolators.ZOOM_OUT;
+ Interpolator translationInterpolator = !playAtomicComponent ? LINEAR : ZOOM_OUT;
propertySetter.setFloat(mWorkspace, View.TRANSLATION_X,
scaleAndTranslation[1], translationInterpolator);
propertySetter.setFloat(mWorkspace, View.TRANSLATION_Y,
scaleAndTranslation[2], translationInterpolator);
propertySetter.setViewAlpha(mLauncher.getHotseatSearchBox(),
- (elements & HOTSEAT_SEARCH_BOX) != 0 ? 1 : 0,
- pageAlphaProvider.interpolator);
+ (elements & HOTSEAT_SEARCH_BOX) != 0 ? 1 : 0, fadeInterpolator);
// Set scrim
WorkspaceAndHotseatScrim scrim = mLauncher.getDragLayer().getScrim();
propertySetter.setFloat(scrim, SCRIM_PROGRESS, state.getWorkspaceScrimAlpha(mLauncher),
- Interpolators.LINEAR);
- propertySetter.setFloat(scrim, SYSUI_PROGRESS, state.hasSysUiScrim ? 1 : 0,
- Interpolators.LINEAR);
+ LINEAR);
+ propertySetter.setFloat(scrim, SYSUI_PROGRESS, state.hasSysUiScrim ? 1 : 0, LINEAR);
}
public void applyChildState(LauncherState state, CellLayout cl, int childIndex) {
applyChildState(state, cl, childIndex, state.getWorkspacePageAlphaProvider(mLauncher),
- NO_ANIM_PROPERTY_SETTER, new AnimationConfig());
+ NO_ANIM_PROPERTY_SETTER, new AnimatorSetBuilder(), new AnimationConfig());
}
private void applyChildState(LauncherState state, CellLayout cl, int childIndex,
PageAlphaProvider pageAlphaProvider, PropertySetter propertySetter,
- AnimationConfig config) {
+ AnimatorSetBuilder builder, AnimationConfig config) {
float pageAlpha = pageAlphaProvider.getPageAlpha(childIndex);
int drawableAlpha = Math.round(pageAlpha * (state.hasWorkspacePageBackground ? 255 : 0));
if (config.playNonAtomicComponent()) {
propertySetter.setInt(cl.getScrimBackground(),
- DRAWABLE_ALPHA, drawableAlpha, Interpolators.ZOOM_OUT);
+ DRAWABLE_ALPHA, drawableAlpha, ZOOM_OUT);
}
if (config.playAtomicComponent()) {
+ Interpolator fadeInterpolator = builder.getInterpolator(ANIM_WORKSPACE_FADE,
+ pageAlphaProvider.interpolator);
propertySetter.setFloat(cl.getShortcutsAndWidgets(), View.ALPHA,
- pageAlpha, pageAlphaProvider.interpolator);
+ pageAlpha, fadeInterpolator);
}
}
} \ No newline at end of file