Search in sources :

Example 11 with VIEW_TRANSLATE_Y

use of com.android.launcher3.LauncherAnimUtils.VIEW_TRANSLATE_Y in project android_packages_apps_Launcher3 by crdroidandroid.

the class StaggeredWorkspaceAnim method addStaggeredAnimationForView.

/**
 * Adds an alpha/trans animator for {@param v}, with a start delay based on the view's row.
 *
 * @param v A view on the workspace.
 * @param row The bottom-most row that contains the view.
 * @param totalRows Total number of rows.
 */
private void addStaggeredAnimationForView(View v, int row, int totalRows) {
    if (mIgnoredView != null && mIgnoredView == v)
        return;
    // Invert the rows, because we stagger starting from the bottom of the screen.
    int invertedRow = totalRows - row;
    // Add 1 to the inverted row so that the bottom most row has a start delay.
    long startDelay = (long) ((invertedRow + 1) * APP_CLOSE_ROW_START_DELAY_MS);
    v.setTranslationY(mSpringTransY);
    ResourceProvider rp = DynamicResource.provider(v.getContext());
    float stiffness = rp.getFloat(R.dimen.staggered_stiffness);
    float damping = rp.getFloat(R.dimen.staggered_damping_ratio);
    float endTransY = 0;
    float springVelocity = Math.abs(mVelocity) * Math.signum(endTransY - mSpringTransY);
    ValueAnimator springTransY = new SpringAnimationBuilder(v.getContext()).setStiffness(stiffness).setDampingRatio(damping).setMinimumVisibleChange(1f).setStartValue(mSpringTransY).setEndValue(endTransY).setStartVelocity(springVelocity).build(v, VIEW_TRANSLATE_Y);
    springTransY.setStartDelay(startDelay);
    springTransY.addListener(new AnimatorListenerAdapter() {

        @Override
        public void onAnimationEnd(Animator animation) {
            v.setTranslationY(0f);
        }
    });
    mAnimators.play(springTransY);
    v.setAlpha(0);
    ObjectAnimator alpha = ObjectAnimator.ofFloat(v, View.ALPHA, 0f, 1f);
    alpha.setInterpolator(LINEAR);
    alpha.setDuration(ALPHA_DURATION_MS);
    alpha.setStartDelay(startDelay);
    alpha.addListener(new AnimatorListenerAdapter() {

        @Override
        public void onAnimationEnd(Animator animation) {
            v.setAlpha(1f);
        }
    });
    mAnimators.play(alpha);
}
Also used : Animator(android.animation.Animator) ObjectAnimator(android.animation.ObjectAnimator) ValueAnimator(android.animation.ValueAnimator) AnimatorListenerAdapter(android.animation.AnimatorListenerAdapter) ObjectAnimator(android.animation.ObjectAnimator) ResourceProvider(com.android.systemui.plugins.ResourceProvider) SpringAnimationBuilder(com.android.launcher3.anim.SpringAnimationBuilder) ValueAnimator(android.animation.ValueAnimator)

Example 12 with VIEW_TRANSLATE_Y

use of com.android.launcher3.LauncherAnimUtils.VIEW_TRANSLATE_Y in project Neo-Launcher by NeoApplications.

the class StaggeredWorkspaceAnim method addStaggeredAnimationForView.

/**
 * Adds an alpha/trans animator for {@param v}, with a start delay based on the view's row.
 *
 * @param v A view on the workspace.
 * @param row The bottom-most row that contains the view.
 * @param totalRows Total number of rows.
 */
private void addStaggeredAnimationForView(View v, int row, int totalRows) {
    // Invert the rows, because we stagger starting from the bottom of the screen.
    int invertedRow = totalRows - row;
    // Add 1 to the inverted row so that the bottom most row has a start delay.
    long startDelay = (long) ((invertedRow + 1) * APP_CLOSE_ROW_START_DELAY_MS);
    v.setTranslationY(mSpringTransY);
    SpringObjectAnimator springTransY = new SpringObjectAnimator<>(v, VIEW_TRANSLATE_Y, 1f, DAMPING_RATIO, STIFFNESS, mSpringTransY, 0);
    springTransY.setStartDelay(startDelay);
    mAnimators.add(springTransY);
    v.setAlpha(0);
    ObjectAnimator alpha = ObjectAnimator.ofFloat(v, View.ALPHA, 0f, 1f);
    alpha.setInterpolator(LINEAR);
    alpha.setDuration(ALPHA_DURATION_MS);
    alpha.setStartDelay(startDelay);
    mAnimators.add(alpha);
}
Also used : SpringObjectAnimator(com.android.launcher3.anim.SpringObjectAnimator) ObjectAnimator(android.animation.ObjectAnimator) SpringObjectAnimator(com.android.launcher3.anim.SpringObjectAnimator)

Example 13 with VIEW_TRANSLATE_Y

use of com.android.launcher3.LauncherAnimUtils.VIEW_TRANSLATE_Y in project android_packages_apps_Trebuchet by LineageOS.

the class StaggeredWorkspaceAnim method addStaggeredAnimationForView.

/**
 * Adds an alpha/trans animator for {@param v}, with a start delay based on the view's row.
 *
 * @param v A view on the workspace.
 * @param row The bottom-most row that contains the view.
 * @param totalRows Total number of rows.
 */
private void addStaggeredAnimationForView(View v, int row, int totalRows) {
    // Invert the rows, because we stagger starting from the bottom of the screen.
    int invertedRow = totalRows - row;
    // Add 1 to the inverted row so that the bottom most row has a start delay.
    long startDelay = (long) ((invertedRow + 1) * APP_CLOSE_ROW_START_DELAY_MS);
    v.setTranslationY(mSpringTransY);
    ResourceProvider rp = DynamicResource.provider(v.getContext());
    float stiffness = rp.getFloat(R.dimen.staggered_stiffness);
    float damping = rp.getFloat(R.dimen.staggered_damping_ratio);
    float endTransY = 0;
    float springVelocity = Math.abs(mVelocity) * Math.signum(endTransY - mSpringTransY);
    ValueAnimator springTransY = new SpringAnimationBuilder(v.getContext()).setStiffness(stiffness).setDampingRatio(damping).setMinimumVisibleChange(1f).setStartValue(mSpringTransY).setEndValue(endTransY).setStartVelocity(springVelocity).build(v, VIEW_TRANSLATE_Y);
    springTransY.setStartDelay(startDelay);
    springTransY.addListener(new AnimatorListenerAdapter() {

        @Override
        public void onAnimationEnd(Animator animation) {
            v.setTranslationY(0f);
        }
    });
    mAnimators.play(springTransY);
    v.setAlpha(0);
    ObjectAnimator alpha = ObjectAnimator.ofFloat(v, View.ALPHA, 0f, 1f);
    alpha.setInterpolator(LINEAR);
    alpha.setDuration(ALPHA_DURATION_MS);
    alpha.setStartDelay(startDelay);
    alpha.addListener(new AnimatorListenerAdapter() {

        @Override
        public void onAnimationEnd(Animator animation) {
            v.setAlpha(1f);
        }
    });
    mAnimators.play(alpha);
}
Also used : Animator(android.animation.Animator) ObjectAnimator(android.animation.ObjectAnimator) ValueAnimator(android.animation.ValueAnimator) AnimatorListenerAdapter(android.animation.AnimatorListenerAdapter) ObjectAnimator(android.animation.ObjectAnimator) ResourceProvider(com.android.systemui.plugins.ResourceProvider) SpringAnimationBuilder(com.android.launcher3.anim.SpringAnimationBuilder) ValueAnimator(android.animation.ValueAnimator)

Example 14 with VIEW_TRANSLATE_Y

use of com.android.launcher3.LauncherAnimUtils.VIEW_TRANSLATE_Y in project android_packages_apps_Launcher3 by ArrowOS.

the class StaggeredWorkspaceAnim method addStaggeredAnimationForView.

/**
 * Adds an alpha/trans animator for {@param v}, with a start delay based on the view's row.
 *
 * @param v A view on the workspace.
 * @param row The bottom-most row that contains the view.
 * @param totalRows Total number of rows.
 */
private void addStaggeredAnimationForView(View v, int row, int totalRows) {
    if (mIgnoredView != null && mIgnoredView == v)
        return;
    // Invert the rows, because we stagger starting from the bottom of the screen.
    int invertedRow = totalRows - row;
    // Add 1 to the inverted row so that the bottom most row has a start delay.
    long startDelay = (long) ((invertedRow + 1) * APP_CLOSE_ROW_START_DELAY_MS);
    v.setTranslationY(mSpringTransY);
    ResourceProvider rp = DynamicResource.provider(v.getContext());
    float stiffness = rp.getFloat(R.dimen.staggered_stiffness);
    float damping = rp.getFloat(R.dimen.staggered_damping_ratio);
    float endTransY = 0;
    float springVelocity = Math.abs(mVelocity) * Math.signum(endTransY - mSpringTransY);
    ValueAnimator springTransY = new SpringAnimationBuilder(v.getContext()).setStiffness(stiffness).setDampingRatio(damping).setMinimumVisibleChange(1f).setStartValue(mSpringTransY).setEndValue(endTransY).setStartVelocity(springVelocity).build(v, VIEW_TRANSLATE_Y);
    springTransY.setStartDelay(startDelay);
    springTransY.addListener(new AnimatorListenerAdapter() {

        @Override
        public void onAnimationEnd(Animator animation) {
            v.setTranslationY(0f);
        }
    });
    mAnimators.play(springTransY);
    v.setAlpha(0);
    ObjectAnimator alpha = ObjectAnimator.ofFloat(v, View.ALPHA, 0f, 1f);
    alpha.setInterpolator(LINEAR);
    alpha.setDuration(ALPHA_DURATION_MS);
    alpha.setStartDelay(startDelay);
    alpha.addListener(new AnimatorListenerAdapter() {

        @Override
        public void onAnimationEnd(Animator animation) {
            v.setAlpha(1f);
        }
    });
    mAnimators.play(alpha);
}
Also used : Animator(android.animation.Animator) ObjectAnimator(android.animation.ObjectAnimator) ValueAnimator(android.animation.ValueAnimator) AnimatorListenerAdapter(android.animation.AnimatorListenerAdapter) ObjectAnimator(android.animation.ObjectAnimator) ResourceProvider(com.android.systemui.plugins.ResourceProvider) SpringAnimationBuilder(com.android.launcher3.anim.SpringAnimationBuilder) ValueAnimator(android.animation.ValueAnimator)

Example 15 with VIEW_TRANSLATE_Y

use of com.android.launcher3.LauncherAnimUtils.VIEW_TRANSLATE_Y in project android_packages_apps_Launcher3 by ArrowOS.

the class WorkspaceStateTransitionAnimation method setWorkspaceProperty.

/**
 * Starts a transition animation for the workspace.
 */
private void setWorkspaceProperty(LauncherState state, PropertySetter propertySetter, StateAnimationConfig 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, config);
    }
    int elements = state.getVisibleElements(mLauncher);
    Interpolator fadeInterpolator = config.getInterpolator(ANIM_WORKSPACE_FADE, pageAlphaProvider.interpolator);
    Hotseat hotseat = mWorkspace.getHotseat();
    Interpolator scaleInterpolator = config.getInterpolator(ANIM_WORKSPACE_SCALE, ZOOM_OUT);
    LauncherState fromState = mLauncher.getStateManager().getState();
    boolean shouldSpring = propertySetter instanceof PendingAnimation && fromState == HINT_STATE && state == NORMAL;
    if (shouldSpring) {
        ((PendingAnimation) propertySetter).add(getSpringScaleAnimator(mLauncher, mWorkspace, mNewScale));
    } else {
        propertySetter.setFloat(mWorkspace, SCALE_PROPERTY, mNewScale, scaleInterpolator);
    }
    mWorkspace.setPivotToScaleWithSelf(hotseat);
    float hotseatScale = hotseatScaleAndTranslation.scale;
    if (shouldSpring) {
        PendingAnimation pa = (PendingAnimation) propertySetter;
        pa.add(getSpringScaleAnimator(mLauncher, hotseat, hotseatScale));
    } else {
        Interpolator hotseatScaleInterpolator = config.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);
    float workspacePageIndicatorAlpha = (elements & WORKSPACE_PAGE_INDICATOR) != 0 ? 1 : 0;
    propertySetter.setViewAlpha(mLauncher.getWorkspace().getPageIndicator(), workspacePageIndicatorAlpha, fadeInterpolator);
    Interpolator translationInterpolator = config.getInterpolator(ANIM_WORKSPACE_TRANSLATE, ZOOM_OUT);
    propertySetter.setFloat(mWorkspace, VIEW_TRANSLATE_X, scaleAndTranslation.translationX, translationInterpolator);
    propertySetter.setFloat(mWorkspace, VIEW_TRANSLATE_Y, scaleAndTranslation.translationY, translationInterpolator);
    Interpolator hotseatTranslationInterpolator = config.getInterpolator(ANIM_HOTSEAT_TRANSLATE, translationInterpolator);
    propertySetter.setFloat(hotseat, VIEW_TRANSLATE_Y, hotseatScaleAndTranslation.translationY, hotseatTranslationInterpolator);
    propertySetter.setFloat(mWorkspace.getPageIndicator(), VIEW_TRANSLATE_Y, hotseatScaleAndTranslation.translationY, hotseatTranslationInterpolator);
    if (!config.hasAnimationFlag(SKIP_SCRIM)) {
        setScrim(propertySetter, state, config);
    }
}
Also used : ScaleAndTranslation(com.android.launcher3.LauncherState.ScaleAndTranslation) PendingAnimation(com.android.launcher3.anim.PendingAnimation) PageAlphaProvider(com.android.launcher3.LauncherState.PageAlphaProvider) Interpolator(android.view.animation.Interpolator)

Aggregations

ObjectAnimator (android.animation.ObjectAnimator)11 Animator (android.animation.Animator)10 Interpolator (android.view.animation.Interpolator)10 PendingAnimation (com.android.launcher3.anim.PendingAnimation)10 AnimatorListenerAdapter (android.animation.AnimatorListenerAdapter)6 ValueAnimator (android.animation.ValueAnimator)6 SpringAnimationBuilder (com.android.launcher3.anim.SpringAnimationBuilder)6 View (android.view.View)5 PageAlphaProvider (com.android.launcher3.LauncherState.PageAlphaProvider)5 ScaleAndTranslation (com.android.launcher3.LauncherState.ScaleAndTranslation)5 ObjectAnimator.ofFloat (android.animation.ObjectAnimator.ofFloat)4 TimeInterpolator (android.animation.TimeInterpolator)4 TypeEvaluator (android.animation.TypeEvaluator)4 Context (android.content.Context)4 Resources (android.content.res.Resources)4 Canvas (android.graphics.Canvas)4 Rect (android.graphics.Rect)4 AttributeSet (android.util.AttributeSet)4 KeyEvent (android.view.KeyEvent)4 MotionEvent (android.view.MotionEvent)4