package com.marvinlabs.widget.slideshow.transition;
import android.view.animation.DecelerateInterpolator;
import android.view.animation.Interpolator;
import com.marvinlabs.widget.slideshow.TransitionFactory;
/**
* The base implementation for a transition factory. Provides storage for a duration and an
* interpolator which should be what is required by most transition factories.
* <p/>
* Created by Vincent Mimoun-Prat @ MarvinLabs on 02/06/2014.
*/
public abstract class BaseTransitionFactory implements TransitionFactory {
public static final long DEFAULT_DURATION = 500;
public static final Interpolator DEFAULT_INTERPOLATOR = new DecelerateInterpolator();
// Duration for the transition in ms
private long duration = DEFAULT_DURATION;
// Interpolator to use for the transition
private Interpolator interpolator;
//==============================================================================================
// GENERAL METHODS
//==
/**
* Default constructor
*/
public BaseTransitionFactory() {
this(DEFAULT_DURATION, DEFAULT_INTERPOLATOR);
}
/**
* Constructor
*
* @param duration The duration for the transition in ms
*/
public BaseTransitionFactory(long duration) {
this(duration, DEFAULT_INTERPOLATOR);
}
/**
* Constructor
*
* @param duration The duration for the transition in ms
* @param interpolator The kind of interpolator we need
*/
public BaseTransitionFactory(long duration, Interpolator interpolator) {
this.interpolator = interpolator;
this.duration = duration;
}
/**
* Get the transition duration
*
* @return duration in ms
*/
public long getDuration() {
return duration;
}
/**
* Set the transition duration
*
* @param duration duration in ms
*/
public void setDuration(long duration) {
this.duration = duration;
}
/**
* Get the interpolator used for the transitions
*
* @return the interpolator
*/
public Interpolator getInterpolator() {
return interpolator;
}
/**
* Set the interpolator used for the transitions
*
* @param interpolator the interpolator
*/
public void setInterpolator(Interpolator interpolator) {
this.interpolator = interpolator;
}
}