package io.codetail.animation;
import android.animation.Animator;
import android.annotation.TargetApi;
import android.os.Build;
import android.view.animation.Interpolator;
import java.lang.ref.WeakReference;
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
final class SupportAnimatorLollipop extends SupportAnimator{
WeakReference<Animator> mNativeAnimator;
SupportAnimatorLollipop(Animator animator) {
mNativeAnimator = new WeakReference<Animator>(animator);
}
@Override
public boolean isNativeAnimator() {
return true;
}
@Override
public Object get() {
return mNativeAnimator;
}
@Override
public void start() {
Animator a = mNativeAnimator.get();
if(a != null) {
a.start();
}
}
@Override
public void setDuration(int duration) {
Animator a = mNativeAnimator.get();
if(a != null) {
a.setDuration(duration);
}
}
@Override
public void setInterpolator(Interpolator value) {
Animator a = mNativeAnimator.get();
if(a != null) {
a.setInterpolator(value);
}
}
@Override
public void addListener(final AnimatorListener listener) {
Animator a = mNativeAnimator.get();
if(a == null) {
return;
}
if(listener == null){
a.addListener(null);
return;
}
a.addListener(new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator animation) {
listener.onAnimationStart();
}
@Override
public void onAnimationEnd(Animator animation) {
listener.onAnimationEnd();
}
@Override
public void onAnimationCancel(Animator animation) {
listener.onAnimationCancel();
}
@Override
public void onAnimationRepeat(Animator animation) {
listener.onAnimationRepeat();
}
});
}
@Override
public boolean isRunning() {
Animator a = mNativeAnimator.get();
return a != null && a.isRunning();
}
}