private void onTransform() { if (transform == null) return; if (transform.isCompleted()) return; // waiting for delay if (!transform.hasStarted()) return; // fire onStartTransform event if (!transform.isStartEventFired()) { transform.setStartEventFired(true); view.onStartTransform(transform); } if (transform.hasExpired()) { // if transform has been completed, finish the transformation if (transform.getRepeatCount() >= transform.getRepeat()) { if (transform.isAutoreverse() && !transform.isReversing()) { // no nothing } else { applyTransform(); completeTransform(); return; } } if (transform.isAutoreverse()) { transform.reverse(); } else { transform.restart(); } } applyTransform(); }