package com.hannesdorfmann.mosby3.sample.mail.ui.transition;
import android.animation.Animator;
import android.animation.TimeInterpolator;
import android.annotation.TargetApi;
@TargetApi(21)
public class PauseableAnimator extends Animator {
private final Animator mWrappedAnimator;
public PauseableAnimator(Animator wrappedAnimator) {
mWrappedAnimator = wrappedAnimator;
}
@Override public long getStartDelay() {
return mWrappedAnimator.getStartDelay();
}
@Override public void setStartDelay(long startDelay) {
mWrappedAnimator.setStartDelay(startDelay);
}
@Override public Animator setDuration(long duration) {
mWrappedAnimator.setDuration(duration);
return this;
}
@Override public long getDuration() {
return mWrappedAnimator.getDuration();
}
@Override public void setInterpolator(TimeInterpolator value) {
mWrappedAnimator.setInterpolator(value);
}
@Override public boolean isRunning() {
return mWrappedAnimator.isRunning();
}
@Override public void start() {
mWrappedAnimator.start();
}
@Override public void cancel() {
mWrappedAnimator.cancel();
}
@Override public void pause() {
if (!isRevealAnimator()) {
mWrappedAnimator.pause();
} else {
}
}
@Override public void resume() {
if (!isRevealAnimator()) {
mWrappedAnimator.resume();
} else {
}
}
@Override public void addListener(AnimatorListener listener) {
mWrappedAnimator.addListener(listener);
}
@Override public void removeAllListeners() {
mWrappedAnimator.removeAllListeners();
}
@Override public void removeListener(AnimatorListener listener) {
mWrappedAnimator.removeListener(listener);
}
private boolean isRevealAnimator() {
return mWrappedAnimator.getClass().getName().contains("RevealAnimator");
}
}