// Path: library/src/main/java/com/transitionseverywhere/utils/TransitionUtils.java
// @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
// public class TransitionUtils {
// 
//     @Nullable
//     public static Animator mergeAnimators(@Nullable Animator animator1, @Nullable Animator animator2) {
//         if (animator1 == null) {
//             return animator2;
//         } else if (animator2 == null) {
//             return animator1;
//         } else {
//             AnimatorSet animatorSet = new AnimatorSet();
//             animatorSet.playTogether(animator1, animator2);
//             return animatorSet;
//         }
//     }
// 
// }


import androidx.transition.TransitionValues;
import androidx.transition.Visibility;
import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import com.transitionseverywhere.R;
import com.transitionseverywhere.utils.TransitionUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.transition.Transition;
import androidx.transition.TransitionListenerAdapter;
            }
            if (savedScaleY != null && savedScaleY != initialScaleY) {
                startScaleY = savedScaleY;
            }
        }

        view.setScaleX(startScaleX);
        view.setScaleY(startScaleY);

        Animator animator = TransitionUtils.mergeAnimators(
            ObjectAnimator.ofFloat(view, View.SCALE_X, startScaleX, endScaleX),
            ObjectAnimator.ofFloat(view, View.SCALE_Y, startScaleY, endScaleY));
        addListener(new TransitionListenerAdapter() {
            @Override
            public void onTransitionEnd(@NonNull Transition transition) {
                view.setScaleX(initialScaleX);
                view.setScaleY(initialScaleY);
                transition.removeListener(this);
            }
        });
        return animator;
    }

    @Nullable
    @Override
    public Animator onAppear(@NonNull ViewGroup sceneRoot, @NonNull final View view, @Nullable TransitionValues startValues,
                             @Nullable TransitionValues endValues) {
        return createAnimation(view, mDisappearedScale, 1f, startValues);
    }

// Path: library/src/main/java/com/transitionseverywhere/utils/TransitionUtils.java
// @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH)
// public class TransitionUtils {
// 
//     @Nullable
//     public static Animator mergeAnimators(@Nullable Animator animator1, @Nullable Animator animator2) {
//         if (animator1 == null) {
//             return animator2;
//         } else if (animator2 == null) {
//             return animator1;
//         } else {
//             AnimatorSet animatorSet = new AnimatorSet();
//             animatorSet.playTogether(animator1, animator2);
//             return animatorSet;
//         }
//     }
// 
// }


// Path: library/src/main/java/com/transitionseverywhere/extra/Scale.java
import androidx.transition.TransitionValues;
import androidx.transition.Visibility;
import android.animation.Animator;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.content.res.TypedArray;
import android.util.AttributeSet;
import android.view.View;
import android.view.ViewGroup;
import com.transitionseverywhere.R;
import com.transitionseverywhere.utils.TransitionUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.transition.Transition;
import androidx.transition.TransitionListenerAdapter;

            }
            if (savedScaleY != null && savedScaleY != initialScaleY) {
                startScaleY = savedScaleY;
            }
        }

        view.setScaleX(startScaleX);
        view.setScaleY(startScaleY);

        Animator animator = TransitionUtils.mergeAnimators(
            ObjectAnimator.ofFloat(view, View.SCALE_X, startScaleX, endScaleX),
            ObjectAnimator.ofFloat(view, View.SCALE_Y, startScaleY, endScaleY));
        addListener(new TransitionListenerAdapter() {
            @Override
            public void onTransitionEnd(@NonNull Transition transition) {
                view.setScaleX(initialScaleX);
                view.setScaleY(initialScaleY);
                transition.removeListener(this);
            }
        });
        return animator;
    }

    @Nullable
    @Override
    public Animator onAppear(@NonNull ViewGroup sceneRoot, @NonNull final View view, @Nullable TransitionValues startValues,
                             @Nullable TransitionValues endValues) {
        return createAnimation(view, mDisappearedScale, 1f, startValues);
    }

    @Override