package com.hannesdorfmann.mosby3.sample.mail.ui.transition;
import android.annotation.TargetApi;
import android.transition.Visibility;
import android.animation.Animator;
import android.graphics.Point;
import android.transition.TransitionValues;
import android.view.View;
import android.view.ViewAnimationUtils;
import android.view.ViewGroup;
@TargetApi(21)
public class RevealTransition extends Visibility {
private final Point mEpicenter;
private final int mSmallRadius;
private final int mBigRadius;
private final long mDuration;
public RevealTransition(Point epicenter, int smallRadius, int bigRadius, long duration) {
mEpicenter = epicenter;
mSmallRadius = smallRadius;
mBigRadius = bigRadius;
mDuration = duration;
}
@Override
public Animator onAppear(ViewGroup sceneRoot, View view, TransitionValues startValues, TransitionValues endValues) {
Animator animator = ViewAnimationUtils.createCircularReveal(view, mEpicenter.x, mEpicenter.y,
mSmallRadius, mBigRadius);
animator.setDuration(mDuration);
return new PauseableAnimator(animator);
}
@Override
public Animator onDisappear(ViewGroup sceneRoot, View view, TransitionValues startValues, TransitionValues endValues) {
Animator animator = ViewAnimationUtils.createCircularReveal(view, mEpicenter.x, mEpicenter.y,
mBigRadius, mSmallRadius);
animator.setDuration(mDuration);
return new PauseableAnimator(animator);
}
}