Search in sources :

Example 16 with AnimatorSetBuilder

use of com.android.launcher3.anim.AnimatorSetBuilder in project Neo-Launcher by NeoApplications.

the class WorkspaceStateTransitionAnimation method setWorkspaceProperty.

/**
 * Starts a transition animation for the workspace.
 */
private void setWorkspaceProperty(LauncherState state, PropertySetter propertySetter, AnimatorSetBuilder builder, AnimationConfig config) {
    ScaleAndTranslation scaleAndTranslation = state.getWorkspaceScaleAndTranslation(mLauncher);
    ScaleAndTranslation hotseatScaleAndTranslation = state.getHotseatScaleAndTranslation(mLauncher);
    mNewScale = scaleAndTranslation.scale;
    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, builder, config);
    }
    int elements = state.getVisibleElements(mLauncher);
    Interpolator fadeInterpolator = builder.getInterpolator(ANIM_WORKSPACE_FADE, pageAlphaProvider.interpolator);
    boolean playAtomicComponent = config.playAtomicOverviewScaleComponent();
    Hotseat hotseat = mWorkspace.getHotseat();
    if (playAtomicComponent) {
        Interpolator scaleInterpolator = builder.getInterpolator(ANIM_WORKSPACE_SCALE, ZOOM_OUT);
        propertySetter.setFloat(mWorkspace, SCALE_PROPERTY, mNewScale, scaleInterpolator);
        if (!hotseat.getRotationMode().isTransposed) {
            // Set the hotseat's pivot point to match the workspace's, so that it scales
            // together. Since both hotseat and workspace can move, transform the point
            // manually instead of using dragLayer.getDescendantCoordRelativeToSelf and
            // related methods.
            /*hotseat.setPivotY(mWorkspace.getPivotY() + mWorkspace.getTop() - hotseat.getTop());
                hotseat.setPivotX(mWorkspace.getPivotX()
                        + mWorkspace.getLeft() - hotseat.getLeft());*/
            DragLayer dragLayer = mLauncher.getDragLayer();
            float[] workspacePivot = new float[] { mWorkspace.getPivotX(), mWorkspace.getPivotY() };
            dragLayer.getDescendantCoordRelativeToSelf(mWorkspace, workspacePivot);
            dragLayer.mapCoordInSelfToDescendant(hotseat, workspacePivot);
            hotseat.setPivotX(workspacePivot[0]);
            hotseat.setPivotY(workspacePivot[1]);
        }
        float hotseatScale = hotseatScaleAndTranslation.scale;
        Interpolator hotseatScaleInterpolator = builder.getInterpolator(ANIM_HOTSEAT_SCALE, scaleInterpolator);
        propertySetter.setFloat(hotseat, SCALE_PROPERTY, hotseatScale, hotseatScaleInterpolator);
        float hotseatIconsAlpha = (elements & HOTSEAT_ICONS) != 0 ? 1 : 0;
        propertySetter.setViewAlpha(hotseat, hotseatIconsAlpha, fadeInterpolator);
        propertySetter.setViewAlpha(mLauncher.getWorkspace().getPageIndicator(), hotseatIconsAlpha, fadeInterpolator);
    }
    // Set options view
    OptionsPanel optionsPanel = OmegaLauncher.getLauncher(mLauncher).getOptionsView();
    propertySetter.setViewAlpha(optionsPanel, (elements & OPTIONS_VIEW) != 0 ? 1 : 0, fadeInterpolator);
    if (!config.playNonAtomicComponent()) {
        // Only the alpha and scale, handled above, are included in the atomic animation.
        return;
    }
    Interpolator translationInterpolator = !playAtomicComponent ? LINEAR : builder.getInterpolator(ANIM_WORKSPACE_TRANSLATE, ZOOM_OUT);
    propertySetter.setFloat(mWorkspace, View.TRANSLATION_X, scaleAndTranslation.translationX, translationInterpolator);
    propertySetter.setFloat(mWorkspace, View.TRANSLATION_Y, scaleAndTranslation.translationY, translationInterpolator);
    Interpolator hotseatTranslationInterpolator = builder.getInterpolator(ANIM_HOTSEAT_TRANSLATE, translationInterpolator);
    propertySetter.setFloat(hotseat, View.TRANSLATION_Y, hotseatScaleAndTranslation.translationY, hotseatTranslationInterpolator);
    propertySetter.setFloat(mWorkspace.getPageIndicator(), View.TRANSLATION_Y, hotseatScaleAndTranslation.translationY, hotseatTranslationInterpolator);
    setScrim(propertySetter, state);
}
Also used : ScaleAndTranslation(com.android.launcher3.LauncherState.ScaleAndTranslation) DragLayer(com.android.launcher3.dragndrop.DragLayer) PageAlphaProvider(com.android.launcher3.LauncherState.PageAlphaProvider) Interpolator(android.view.animation.Interpolator) OptionsPanel(com.saggitt.omega.views.OptionsPanel)

Example 17 with AnimatorSetBuilder

use of com.android.launcher3.anim.AnimatorSetBuilder in project Neo-Launcher by NeoApplications.

the class AllAppsTransitionController method setStateWithAnimation.

/**
 * Creates an animation which updates the vertical transition progress and updates all the
 * dependent UI using various animation events
 */
@Override
public void setStateWithAnimation(LauncherState toState, AnimatorSetBuilder builder, AnimationConfig config) {
    float targetProgress = toState.getVerticalProgress(mLauncher);
    if (Float.compare(mProgress, targetProgress) == 0) {
        setAlphas(toState, config, builder);
        // Fail fast
        onProgressAnimationEnd();
        return;
    }
    if (!config.playNonAtomicComponent()) {
        // There is no atomic component for the all apps transition, so just return early.
        return;
    }
    Interpolator interpolator = config.userControlled ? LINEAR : toState == OVERVIEW ? builder.getInterpolator(ANIM_OVERVIEW_SCALE, FAST_OUT_SLOW_IN) : FAST_OUT_SLOW_IN;
    Animator anim = createSpringAnimation(mProgress, targetProgress);
    anim.setDuration(config.duration);
    anim.setInterpolator(builder.getInterpolator(ANIM_VERTICAL_PROGRESS, interpolator));
    anim.addListener(getProgressAnimatorListener());
    builder.play(anim);
    setAlphas(toState, config, builder);
}
Also used : Animator(android.animation.Animator) SpringObjectAnimator(com.android.launcher3.anim.SpringObjectAnimator) Interpolator(android.view.animation.Interpolator)

Example 18 with AnimatorSetBuilder

use of com.android.launcher3.anim.AnimatorSetBuilder in project Neo-Launcher by NeoApplications.

the class PortraitStatesTouchController method getNormalToOverviewAnimation.

private AnimatorSetBuilder getNormalToOverviewAnimation() {
    mAllAppsInterpolatorWrapper.baseInterpolator = LINEAR;
    AnimatorSetBuilder builder = new AnimatorSetBuilder();
    builder.setInterpolator(ANIM_VERTICAL_PROGRESS, mAllAppsInterpolatorWrapper);
    return builder;
}
Also used : AnimatorSetBuilder(com.android.launcher3.anim.AnimatorSetBuilder)

Example 19 with AnimatorSetBuilder

use of com.android.launcher3.anim.AnimatorSetBuilder in project Neo-Launcher by NeoApplications.

the class PortraitStatesTouchController method getAllAppsToOverviewAnimation.

private AnimatorSetBuilder getAllAppsToOverviewAnimation() {
    AnimatorSetBuilder builder = new AnimatorSetBuilder();
    builder.setInterpolator(ANIM_ALL_APPS_FADE, Interpolators.clampToProgress(DEACCEL, 1 - ALL_APPS_CONTENT_FADE_THRESHOLD, 1));
    builder.setInterpolator(ANIM_OVERVIEW_FADE, Interpolators.clampToProgress(ACCEL, 0f, 1 - RECENTS_FADE_THRESHOLD));
    return builder;
}
Also used : AnimatorSetBuilder(com.android.launcher3.anim.AnimatorSetBuilder)

Example 20 with AnimatorSetBuilder

use of com.android.launcher3.anim.AnimatorSetBuilder in project Neo-Launcher by NeoApplications.

the class FlingAndHoldTouchController method getAnimatorSetBuilderForStates.

@Override
protected AnimatorSetBuilder getAnimatorSetBuilderForStates(LauncherState fromState, LauncherState toState) {
    if (fromState == NORMAL && toState == ALL_APPS) {
        AnimatorSetBuilder builder = new AnimatorSetBuilder();
        // Fade in prediction icons quickly, then rest of all apps after reaching overview.
        float progressToReachOverview = NORMAL.getVerticalProgress(mLauncher) - OVERVIEW.getVerticalProgress(mLauncher);
        builder.setInterpolator(ANIM_ALL_APPS_HEADER_FADE, Interpolators.clampToProgress(ACCEL, 0, ALL_APPS_CONTENT_FADE_THRESHOLD));
        builder.setInterpolator(ANIM_ALL_APPS_FADE, Interpolators.clampToProgress(ACCEL, progressToReachOverview, progressToReachOverview + ALL_APPS_CONTENT_FADE_THRESHOLD));
        // Get workspace out of the way quickly, to prepare for potential pause.
        builder.setInterpolator(ANIM_WORKSPACE_SCALE, DEACCEL_3);
        builder.setInterpolator(ANIM_WORKSPACE_TRANSLATE, DEACCEL_3);
        builder.setInterpolator(ANIM_WORKSPACE_FADE, DEACCEL_3);
        return builder;
    } else if (fromState == ALL_APPS && toState == NORMAL) {
        AnimatorSetBuilder builder = new AnimatorSetBuilder();
        // Keep all apps/predictions opaque until the very end of the transition.
        float progressToReachOverview = OVERVIEW.getVerticalProgress(mLauncher);
        builder.setInterpolator(ANIM_ALL_APPS_FADE, Interpolators.clampToProgress(DEACCEL, progressToReachOverview - ALL_APPS_CONTENT_FADE_THRESHOLD, progressToReachOverview));
        builder.setInterpolator(ANIM_ALL_APPS_HEADER_FADE, Interpolators.clampToProgress(DEACCEL, 1 - ALL_APPS_CONTENT_FADE_THRESHOLD, 1));
        return builder;
    }
    return super.getAnimatorSetBuilderForStates(fromState, toState);
}
Also used : AnimatorSetBuilder(com.android.launcher3.anim.AnimatorSetBuilder)

Aggregations

AnimatorSetBuilder (com.android.launcher3.anim.AnimatorSetBuilder)16 Animator (android.animation.Animator)7 AnimatorSet (android.animation.AnimatorSet)4 Interpolator (android.view.animation.Interpolator)4 PropertySetter (com.android.launcher3.anim.PropertySetter)4 AnimatorListenerAdapter (android.animation.AnimatorListenerAdapter)3 ObjectAnimator (android.animation.ObjectAnimator)3 ValueAnimator (android.animation.ValueAnimator)3 AnimationConfig (com.android.launcher3.LauncherStateManager.AnimationConfig)3 RecentsView (com.android.quickstep.views.RecentsView)3 LauncherState (com.android.launcher3.LauncherState)2 ScaleAndTranslation (com.android.launcher3.LauncherState.ScaleAndTranslation)2 AllAppsTransitionController (com.android.launcher3.allapps.AllAppsTransitionController)2 SpringObjectAnimator (com.android.launcher3.anim.SpringObjectAnimator)2 AbstractFloatingView (com.android.launcher3.AbstractFloatingView)1 PageAlphaProvider (com.android.launcher3.LauncherState.PageAlphaProvider)1 LauncherStateManager (com.android.launcher3.LauncherStateManager)1 AnimationSuccessListener (com.android.launcher3.anim.AnimationSuccessListener)1 DragLayer (com.android.launcher3.dragndrop.DragLayer)1 OverviewScrim (com.android.launcher3.graphics.OverviewScrim)1