// Path: core/src/main/java/com/kaichunlin/transition/TransitionManager.java
// public interface TransitionManager extends TransitionOperation {
// 
//     /**
//      * Same as calling addTransition(transitionBuilder.build()).
//      *
//      * @param transitionBuilder
//      */
//     void addTransition(AbstractTransitionBuilder transitionBuilder);
// 
//     /**
//      * Adds a transition.
//      *
//      * @param transition
//      */
//     void addTransition(Transition transition);
// 
//     void addAllTransitions(List<Transition> transitionsList);
// 
//     /**
//      * Removes a transition, should not be called while transition is in progress.
//      *
//      * @param transition
//      * @return true if a transition is removed, false otherwise.
//      */
//     boolean removeTransition(Transition transition);
// 
//     List<Transition> getTransitions();
// 
//     /**
//      * Stops and clears all transitions.
//      */
//     void removeAllTransitions();
// 
//     void addTransitionListener(TransitionManagerListener listener);
// 
//     void removeTransitionListener(TransitionManagerListener listener);
// 
//     void notifyTransitionStart();
// 
//     void notifyTransitionEnd();
// }
// 
// Path: core/src/main/java/com/kaichunlin/transition/TransitionConfig.java
// public class TransitionConfig {
//     static boolean _debug;
//     static boolean _printDebug;
// 
//     /**
//      * @param debug set debugging
//      */
//     public static void setDebug(boolean debug) {
//         _debug = debug;
//     }
// 
//     /**
//      * @return is debugging enabled
//      */
//     public static boolean isDebug() {
//         return _debug;
//     }
// 
//     /**
//      * @param printDebug set auto printing transition detail messages on transition/animation end
//      */
//     public static void setPrintDebug(boolean printDebug) {
//         _printDebug = printDebug;
//     }
// 
//     /**
//      * @return is auto printing transition detail messages on transition/animation end enabled
//      */
//     public static boolean isPrintDebug() {
//         return _printDebug;
//     }
// }
// 
// Path: core/src/main/java/com/kaichunlin/transition/TransitionManagerListener.java
// public interface TransitionManagerListener {
//     void onTransitionStart(TransitionManager manager);
// 
//     void onTransitionEnd(TransitionManager manager);
// }


import android.util.Log;
import com.kaichunlin.transition.TransitionManager;
import com.kaichunlin.transition.TransitionConfig;
import com.kaichunlin.transition.TransitionManagerListener;
package com.kaichunlin.transition.internal.debug;



/**
 * Uses Log.i to output the start and end of a transition.
 */
public class TraceTransitionManagerListener implements TransitionManagerListener {
    private long mStart;

    @Override
    public void onTransitionStart(TransitionManager manager) {
        mStart = System.currentTimeMillis();
        if (TransitionConfig.isDebug()) {
            Log.i(getClass().getSimpleName(), "onTransitionStart: " + manager);
        }
    }

    @Override
    public void onTransitionEnd(TransitionManager manager) {
// Path: core/src/main/java/com/kaichunlin/transition/TransitionManager.java
// public interface TransitionManager extends TransitionOperation {
// 
//     /**
//      * Same as calling addTransition(transitionBuilder.build()).
//      *
//      * @param transitionBuilder
//      */
//     void addTransition(AbstractTransitionBuilder transitionBuilder);
// 
//     /**
//      * Adds a transition.
//      *
//      * @param transition
//      */
//     void addTransition(Transition transition);
// 
//     void addAllTransitions(List<Transition> transitionsList);
// 
//     /**
//      * Removes a transition, should not be called while transition is in progress.
//      *
//      * @param transition
//      * @return true if a transition is removed, false otherwise.
//      */
//     boolean removeTransition(Transition transition);
// 
//     List<Transition> getTransitions();
// 
//     /**
//      * Stops and clears all transitions.
//      */
//     void removeAllTransitions();
// 
//     void addTransitionListener(TransitionManagerListener listener);
// 
//     void removeTransitionListener(TransitionManagerListener listener);
// 
//     void notifyTransitionStart();
// 
//     void notifyTransitionEnd();
// }
// 
// Path: core/src/main/java/com/kaichunlin/transition/TransitionConfig.java
// public class TransitionConfig {
//     static boolean _debug;
//     static boolean _printDebug;
// 
//     /**
//      * @param debug set debugging
//      */
//     public static void setDebug(boolean debug) {
//         _debug = debug;
//     }
// 
//     /**
//      * @return is debugging enabled
//      */
//     public static boolean isDebug() {
//         return _debug;
//     }
// 
//     /**
//      * @param printDebug set auto printing transition detail messages on transition/animation end
//      */
//     public static void setPrintDebug(boolean printDebug) {
//         _printDebug = printDebug;
//     }
// 
//     /**
//      * @return is auto printing transition detail messages on transition/animation end enabled
//      */
//     public static boolean isPrintDebug() {
//         return _printDebug;
//     }
// }
// 
// Path: core/src/main/java/com/kaichunlin/transition/TransitionManagerListener.java
// public interface TransitionManagerListener {
//     void onTransitionStart(TransitionManager manager);
// 
//     void onTransitionEnd(TransitionManager manager);
// }


// Path: core/src/main/java/com/kaichunlin/transition/internal/debug/TraceTransitionManagerListener.java
import android.util.Log;
import com.kaichunlin.transition.TransitionManager;
import com.kaichunlin.transition.TransitionConfig;
import com.kaichunlin.transition.TransitionManagerListener;

package com.kaichunlin.transition.internal.debug;



/**
 * Uses Log.i to output the start and end of a transition.
 */
public class TraceTransitionManagerListener implements TransitionManagerListener {
    private long mStart;

    @Override
    public void onTransitionStart(TransitionManager manager) {
        mStart = System.currentTimeMillis();
        if (TransitionConfig.isDebug()) {
            Log.i(getClass().getSimpleName(), "onTransitionStart: " + manager);
        }
    }

    @Override
    public void onTransitionEnd(TransitionManager manager) {
        if (TransitionConfig.isDebug()) {