package com.zulip.android.util;
import android.animation.Animator;
import android.annotation.SuppressLint;
import android.support.v4.view.animation.FastOutSlowInInterpolator;
import android.view.View;
import android.view.ViewPropertyAnimator;
import android.view.animation.Interpolator;
public class AnimationHelper {
private static final Interpolator FAST_OUT_SLOW_IN_INTERPOLATOR = new FastOutSlowInInterpolator();
@SuppressLint("NewApi")
public static void showView(final View view, int duration) {
ViewPropertyAnimator slideOutAnimator = view.animate()
.translationX(view.getWidth())
.setInterpolator(FAST_OUT_SLOW_IN_INTERPOLATOR)
.setDuration(duration);
slideOutAnimator.setListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animator) {
}
@Override
public void onAnimationEnd(Animator animator) {
view.setVisibility(View.GONE);
}
@Override
public void onAnimationCancel(Animator animator) {
}
@Override
public void onAnimationRepeat(Animator animator) {
}
});
slideOutAnimator.start();
}
@SuppressLint("NewApi")
public static void hideView(final View view, int duration) {
ViewPropertyAnimator slideOutAnimator = view.animate()
.translationX(0)
.setInterpolator(FAST_OUT_SLOW_IN_INTERPOLATOR)
.setDuration(duration);
slideOutAnimator.setListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animator) {
view.setVisibility(View.VISIBLE);
}
@Override
public void onAnimationEnd(Animator animator) {
}
@Override
public void onAnimationCancel(Animator animator) {
}
@Override
public void onAnimationRepeat(Animator animator) {
}
});
slideOutAnimator.start();
}
@SuppressLint("NewApi")
public static void hideViewX(final View view, boolean animToRight) {
ViewPropertyAnimator animator = view.animate()
.translationX((animToRight) ? view.getWidth() : view.getWidth() * -1)
.setInterpolator(FAST_OUT_SLOW_IN_INTERPOLATOR)
.setDuration(200);
animator.setListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animator) {
}
@Override
public void onAnimationEnd(Animator animator) {
view.setVisibility(View.GONE);
view.setX(0);
}
@Override
public void onAnimationCancel(Animator animator) {
}
@Override
public void onAnimationRepeat(Animator animator) {
}
});
animator.start();
}
}