// Path: app/src/main/java/com/derek/android/rubik/Action.java
// public interface ActionCallback {
//     public void setEnableAnimation(boolean enable);
//     public boolean getEnableAnimation();
//     public void onActionStart();
//     public void onActionFinish();
// }


import com.derek.android.rubik.Action.ActionCallback;

    public void clear() {
        sum = 0;
    }

    @Override
    public void setEnableAnimation(boolean enable) {
        animationEnable = enable;
    }

    @Override
    public boolean getEnableAnimation() {
        return animationEnable;
    }

    @Override
    public void nextFrame() {
        if (current < sum) {
            actions[current % CACHE_SIZE].update(target);
        }
    }

    @Override
    public void onActionStart() {
        //nothing special here
    }

    @Override
    public void onActionFinish() {
        current++;
// Path: app/src/main/java/com/derek/android/rubik/Action.java
// public interface ActionCallback {
//     public void setEnableAnimation(boolean enable);
//     public boolean getEnableAnimation();
//     public void onActionStart();
//     public void onActionFinish();
// }


// Path: app/src/main/java/com/derek/android/rubik/RotateAnimation.java
import com.derek.android.rubik.Action.ActionCallback;


    public void clear() {
        sum = 0;
    }

    @Override
    public void setEnableAnimation(boolean enable) {
        animationEnable = enable;
    }

    @Override
    public boolean getEnableAnimation() {
        return animationEnable;
    }

    @Override
    public void nextFrame() {
        if (current < sum) {
            actions[current % CACHE_SIZE].update(target);
        }
    }

    @Override
    public void onActionStart() {
        //nothing special here
    }

    @Override
    public void onActionFinish() {
        current++;
        if (current >= sum) {