// Path: app/src/main/java/com/mortarnav/stackable/HomeStackable.java
// @Parcel(parcelsIndex = false)
// public class HomeStackable implements StackablePath {
// 
//     String name;
// 
//     @ParcelConstructor
//     public HomeStackable(String name) {
//         this.name = name;
//     }
// 
//     @Override
//     public View createView(Context context, ViewGroup parent) {
//         return new HomeView(context);
//     }
// 
//     @Override
//     public void configureScope(MortarScope.Builder builder, MortarScope parentScope) {
//         builder.withService(DaggerService.SERVICE_NAME, DaggerHomeStackable_Component.builder()
//                 .mainActivityComponent(parentScope.<MainActivityComponent>getService(DaggerService.SERVICE_NAME))
//                 .module(new Module())
//                 .build());
//     }
// 
//     @dagger.Module
//     public class Module {
// 
//         @Provides
//         @DaggerScope(Component.class)
//         public HomePresenter providesPresenter() {
//             return new HomePresenter(name);
//         }
//     }
// 
//     @dagger.Component(dependencies = MainActivityComponent.class, modules = Module.class)
//     @DaggerScope(Component.class)
//     public interface Component extends WithActivityDependencies {
// 
//         void inject(HomeView view);
// 
//         void inject(HomeAdditionalCustomView view);
//     }
// }
// 
// Path: app/src/main/java/com/mortarnav/presenter/HomePresenter.java
// public class HomePresenter extends ViewPresenter<HomeView> implements ReceivesResult<String> {
// 
//     private static int count = 0;
// 
//     private final String name;
//     private final int random;
// 
//     public HomePresenter(String name) {
//         this.name = name;
//         random = new Random().nextInt(100);
//     }
// 
//     @Override
//     protected void onLoad(Bundle savedInstanceState) {
//         getView().titleTextView.setText(name);
// 
//         int r = savedInstanceState != null ? savedInstanceState.getInt("random") : random;
//         getView().subtitleTextView.setText("Random number: " + r);
//     }
// 
//     @Override
//     protected void onSave(Bundle outState) {
//         outState.putInt("random", random);
//     }
// 
//     @Override
//     public void onReceivedResult(String result) {
//         Timber.d("Receive result: %s", result);
//         // beware that this is called before onLoad() and getView() returns null here
//     }
// 
//     public void nextHomeClick() {
//         Navigator.get(getView()).push(new HomeStackable("Home " + ++count));
//     }
// 
// 
//     public void subnavClick() {
// //        Navigator.get(getView()).chain(new NavigationChain().back().back());
//         Navigator.get(getView()).push(new SubnavStackable());
//     }
// 
//     public void customViewClick() {
//         Timber.d("Click from custom view");
//     }
// 
//     public void pagerClick() {
//         Navigator.get(getView()).push(new SlidesStackable());
//     }
// 
//     public void showPopupClick() {
//         Navigator.get(getView()).show(new MyPopupStackable());
//     }
// 
//     public void replaceNewHomeClick() {
//         Navigator.get(getView()).replace(new HomeStackable("Replaced!"));
//     }
// 
//     public void showReturnsResultClick() {
//         Navigator.get(getView()).push(new ReturnsResultStackable());
//     }
// 
//     public void backToRootClick() {
//         Navigator.get(getView()).backToRoot("Result test back to root");
// //        Navigator.get(getView()).chain(new NavigationChain()
// //                .backToRoot()
// //                .replace(new HomeStackable("REPLACED STACKABLE " + new Random().nextInt(10000))));
//     }
// 
//     public void showTwoPopupsClick() {
//         Navigator.get(getView()).show(new MyPopup2Stackable(), new MyPopupStackable());
//     }
// 
//     public void showPopupTwoClick() {
//         Navigator.get(getView()).show(new MyPopup2Stackable());
//     }
// 
//     public void setNewStackClick() {
//         Navigator.get(getView()).set(new NavigationStack()
//                 .put(new HomeStackable("NEW STACK 1"))
//                 .put(new HomeStackable("NEW STACK 2"))
//                 .put(new SlidesStackable()), ViewTransitionDirection.FORWARD);
//     }
// }


import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.FrameLayout;
import com.mortarnav.R;
import com.mortarnav.stackable.HomeStackable;
import com.mortarnav.presenter.HomePresenter;
import javax.inject.Inject;
import architect.robot.DaggerService;
import butterknife.ButterKnife;
import butterknife.OnClick;
package com.mortarnav.view;





/**
 * @author Lukasz Piliszczuk - lukasz.pili@gmail.com
 */
public class HomeAdditionalCustomView extends FrameLayout {

    @Inject
    protected HomePresenter presenter;

    public HomeAdditionalCustomView(Context context, AttributeSet attrs) {
        super(context, attrs);

        DaggerService.<HomeStackable.Component>get(context).inject(this);

        View view = View.inflate(context, R.layout.home_additional_custom_view, this);
        ButterKnife.bind(view);
    }

    @OnClick
// Path: app/src/main/java/com/mortarnav/stackable/HomeStackable.java
// @Parcel(parcelsIndex = false)
// public class HomeStackable implements StackablePath {
// 
//     String name;
// 
//     @ParcelConstructor
//     public HomeStackable(String name) {
//         this.name = name;
//     }
// 
//     @Override
//     public View createView(Context context, ViewGroup parent) {
//         return new HomeView(context);
//     }
// 
//     @Override
//     public void configureScope(MortarScope.Builder builder, MortarScope parentScope) {
//         builder.withService(DaggerService.SERVICE_NAME, DaggerHomeStackable_Component.builder()
//                 .mainActivityComponent(parentScope.<MainActivityComponent>getService(DaggerService.SERVICE_NAME))
//                 .module(new Module())
//                 .build());
//     }
// 
//     @dagger.Module
//     public class Module {
// 
//         @Provides
//         @DaggerScope(Component.class)
//         public HomePresenter providesPresenter() {
//             return new HomePresenter(name);
//         }
//     }
// 
//     @dagger.Component(dependencies = MainActivityComponent.class, modules = Module.class)
//     @DaggerScope(Component.class)
//     public interface Component extends WithActivityDependencies {
// 
//         void inject(HomeView view);
// 
//         void inject(HomeAdditionalCustomView view);
//     }
// }
// 
// Path: app/src/main/java/com/mortarnav/presenter/HomePresenter.java
// public class HomePresenter extends ViewPresenter<HomeView> implements ReceivesResult<String> {
// 
//     private static int count = 0;
// 
//     private final String name;
//     private final int random;
// 
//     public HomePresenter(String name) {
//         this.name = name;
//         random = new Random().nextInt(100);
//     }
// 
//     @Override
//     protected void onLoad(Bundle savedInstanceState) {
//         getView().titleTextView.setText(name);
// 
//         int r = savedInstanceState != null ? savedInstanceState.getInt("random") : random;
//         getView().subtitleTextView.setText("Random number: " + r);
//     }
// 
//     @Override
//     protected void onSave(Bundle outState) {
//         outState.putInt("random", random);
//     }
// 
//     @Override
//     public void onReceivedResult(String result) {
//         Timber.d("Receive result: %s", result);
//         // beware that this is called before onLoad() and getView() returns null here
//     }
// 
//     public void nextHomeClick() {
//         Navigator.get(getView()).push(new HomeStackable("Home " + ++count));
//     }
// 
// 
//     public void subnavClick() {
// //        Navigator.get(getView()).chain(new NavigationChain().back().back());
//         Navigator.get(getView()).push(new SubnavStackable());
//     }
// 
//     public void customViewClick() {
//         Timber.d("Click from custom view");
//     }
// 
//     public void pagerClick() {
//         Navigator.get(getView()).push(new SlidesStackable());
//     }
// 
//     public void showPopupClick() {
//         Navigator.get(getView()).show(new MyPopupStackable());
//     }
// 
//     public void replaceNewHomeClick() {
//         Navigator.get(getView()).replace(new HomeStackable("Replaced!"));
//     }
// 
//     public void showReturnsResultClick() {
//         Navigator.get(getView()).push(new ReturnsResultStackable());
//     }
// 
//     public void backToRootClick() {
//         Navigator.get(getView()).backToRoot("Result test back to root");
// //        Navigator.get(getView()).chain(new NavigationChain()
// //                .backToRoot()
// //                .replace(new HomeStackable("REPLACED STACKABLE " + new Random().nextInt(10000))));
//     }
// 
//     public void showTwoPopupsClick() {
//         Navigator.get(getView()).show(new MyPopup2Stackable(), new MyPopupStackable());
//     }
// 
//     public void showPopupTwoClick() {
//         Navigator.get(getView()).show(new MyPopup2Stackable());
//     }
// 
//     public void setNewStackClick() {
//         Navigator.get(getView()).set(new NavigationStack()
//                 .put(new HomeStackable("NEW STACK 1"))
//                 .put(new HomeStackable("NEW STACK 2"))
//                 .put(new SlidesStackable()), ViewTransitionDirection.FORWARD);
//     }
// }


// Path: app/src/main/java/com/mortarnav/view/HomeAdditionalCustomView.java
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.FrameLayout;
import com.mortarnav.R;
import com.mortarnav.stackable.HomeStackable;
import com.mortarnav.presenter.HomePresenter;
import javax.inject.Inject;
import architect.robot.DaggerService;
import butterknife.ButterKnife;
import butterknife.OnClick;

package com.mortarnav.view;





/**
 * @author Lukasz Piliszczuk - lukasz.pili@gmail.com
 */
public class HomeAdditionalCustomView extends FrameLayout {

    @Inject
    protected HomePresenter presenter;

    public HomeAdditionalCustomView(Context context, AttributeSet attrs) {
        super(context, attrs);

        DaggerService.<HomeStackable.Component>get(context).inject(this);

        View view = View.inflate(context, R.layout.home_additional_custom_view, this);
        ButterKnife.bind(view);
    }

    @OnClick
    void onClick() {