    private void initializeTransformationRecursive(Animator animator, long defaultDuration) {
        long duration = animator.getDuration();
        if (duration == 0) {
            duration = defaultDuration;
        }
        if (animator instanceof AnimatorSet) {
            ArrayList<Animator> children = ((AnimatorSet) animator).getChildAnimations();
            for (int i = children.size() - 1; i >= 0; i--) {
                initializeTransformationRecursive(children.get(i), duration);
            }
        } else if (animator instanceof ValueAnimator) {
            ValueAnimator valueAnim = ((ValueAnimator) animator);
            // DIP to pixel, save back to duration
            valueAnim.setDuration((long) TypedValue.applyDimension(