package edu.mit.media.funf.action;
import edu.mit.media.funf.config.Configurable;
import edu.mit.media.funf.datasource.Startable;
import edu.mit.media.funf.datasource.Startable.TriggerAction;
import edu.mit.media.funf.time.TimeUtil;
import edu.mit.media.funf.util.LogUtil;
import android.util.Log;
public class StartableAction extends Action implements TriggerAction {
@Configurable
private Double duration = null;
@Configurable
private Startable target = null;
StartableAction() {
}
public void setTarget(Startable target) {
this.target = target;
}
protected void execute() {
if (target == null)
return;
Log.d(LogUtil.TAG, "running action start");
Log.d(LogUtil.TAG, target.getClass().getName());
target.start();
if (duration != null && duration > 0.0) {
getHandler().postDelayed(new Runnable() {
@Override
public void run() {
Log.d(LogUtil.TAG, "running action stop");
target.stop();
}
}, TimeUtil.secondsToMillis(duration));
}
}
protected boolean isLongRunningAction() {
return true;
}
}