// Path: simple-stack/src/main/java/com/zhuinden/simplestack/navigator/DefaultViewKey.java
// public interface DefaultViewKey {
//     int layout();
// 
//     @Nonnull
//     ViewChangeHandler viewChangeHandler();
// }
// 
// Path: simple-stack/src/main/java/com/zhuinden/simplestack/navigator/ViewChangeHandler.java
// public interface ViewChangeHandler {
//     /**
//      * It must be called to signal that the view change is complete.
//      */
//     interface ViewChangeCallback {
//         void onCompleted();
//     }
// 
//     /**
//      * Perform the view change. The previous view must be removed from the container, and the new view must be added to the container.
//      * When complete, the completion callback must be called.
//      *
//      * @param container          the container for the views
//      * @param previousView       the previous view
//      * @param newView            the new view
//      * @param direction          the direction (from the StateChange)
//      * @param viewChangeCallback the callback that must be called when the view change is complete.
//      */
//     void performViewChange(@Nonnull final ViewGroup container, @Nonnull final View previousView, @Nonnull final View newView, final int direction, @Nonnull final ViewChangeCallback viewChangeCallback);
// }
// 
// Path: simple-stack/src/main/java/com/zhuinden/simplestack/navigator/changehandlers/FadeViewChangeHandler.java
// @TargetApi(11)
// public final class FadeViewChangeHandler
//         extends AnimatorViewChangeHandler {
//     @Override
//     protected Animator createAnimator(@Nonnull View previousView, @Nonnull View newView, int direction) {
//         AnimatorSet set = new AnimatorSet();
//         set.play(ObjectAnimator.ofFloat(previousView, "alpha", 1, 0));
//         set.play(ObjectAnimator.ofFloat(newView, "alpha", 0, 1));
//         return set;
//     }
// 
//     @Override
//     protected void resetPreviousViewValues(View previousView) {
//         previousView.setAlpha(1f);
//     }
// }


import android.os.Parcelable;
import androidx.annotation.NonNull;
import com.zhuinden.simplestack.navigator.DefaultViewKey;
import com.zhuinden.simplestack.navigator.ViewChangeHandler;
import com.zhuinden.simplestack.navigator.changehandlers.FadeViewChangeHandler;
package com.zhuinden.navigationexampleview.core.navigation;



/**
 * Created by Owner on 2017. 06. 29..
 */

public abstract class BaseKey implements DefaultViewKey, Parcelable {
    @NonNull
    @Override
    public ViewChangeHandler viewChangeHandler() {
// Path: simple-stack/src/main/java/com/zhuinden/simplestack/navigator/DefaultViewKey.java
// public interface DefaultViewKey {
//     int layout();
// 
//     @Nonnull
//     ViewChangeHandler viewChangeHandler();
// }
// 
// Path: simple-stack/src/main/java/com/zhuinden/simplestack/navigator/ViewChangeHandler.java
// public interface ViewChangeHandler {
//     /**
//      * It must be called to signal that the view change is complete.
//      */
//     interface ViewChangeCallback {
//         void onCompleted();
//     }
// 
//     /**
//      * Perform the view change. The previous view must be removed from the container, and the new view must be added to the container.
//      * When complete, the completion callback must be called.
//      *
//      * @param container          the container for the views
//      * @param previousView       the previous view
//      * @param newView            the new view
//      * @param direction          the direction (from the StateChange)
//      * @param viewChangeCallback the callback that must be called when the view change is complete.
//      */
//     void performViewChange(@Nonnull final ViewGroup container, @Nonnull final View previousView, @Nonnull final View newView, final int direction, @Nonnull final ViewChangeCallback viewChangeCallback);
// }
// 
// Path: simple-stack/src/main/java/com/zhuinden/simplestack/navigator/changehandlers/FadeViewChangeHandler.java
// @TargetApi(11)
// public final class FadeViewChangeHandler
//         extends AnimatorViewChangeHandler {
//     @Override
//     protected Animator createAnimator(@Nonnull View previousView, @Nonnull View newView, int direction) {
//         AnimatorSet set = new AnimatorSet();
//         set.play(ObjectAnimator.ofFloat(previousView, "alpha", 1, 0));
//         set.play(ObjectAnimator.ofFloat(newView, "alpha", 0, 1));
//         return set;
//     }
// 
//     @Override
//     protected void resetPreviousViewValues(View previousView) {
//         previousView.setAlpha(1f);
//     }
// }


// Path: samples/basic-samples/simple-stack-example-basic-java-view/src/main/java/com/zhuinden/navigationexampleview/core/navigation/BaseKey.java
import android.os.Parcelable;
import androidx.annotation.NonNull;
import com.zhuinden.simplestack.navigator.DefaultViewKey;
import com.zhuinden.simplestack.navigator.ViewChangeHandler;
import com.zhuinden.simplestack.navigator.changehandlers.FadeViewChangeHandler;

package com.zhuinden.navigationexampleview.core.navigation;



/**
 * Created by Owner on 2017. 06. 29..
 */

public abstract class BaseKey implements DefaultViewKey, Parcelable {
    @NonNull
    @Override
    public ViewChangeHandler viewChangeHandler() {
        return new FadeViewChangeHandler();