package com.blundell.quicksand.act; import android.view.ViewPropertyAnimator; class AnimationAct implements Act { private final ViewPropertyAnimator animator; private final int id; private final boolean first; private final boolean last; public AnimationAct(ViewPropertyAnimator animator, int id, boolean first, boolean last) { this.animator = animator; this.id = id; this.first = first; this.last = last; } @Override public int getId() { return id; } @Override public boolean isFirst() { return first; } @Override public boolean isLast() { return last; } @Override public void setDuration(long duration) { animator.setDuration(duration); } @Override public long getDuration() { return animator.getDuration(); } @Override public void addListener(final StartListener listener) { animator.withStartAction( new Runnable() { @Override public void run() { listener.onStart(AnimationAct.this); } }) .withEndAction( new Runnable() { @Override public void run() { listener.onFinish(AnimationAct.this); } }); } }