// Path: ferro-mvp/src/main/java/com/agna/ferro/mvp/component/ScreenComponent.java
// public interface ScreenComponent<V extends BaseView> {
//     void inject(V view);
// }
// 
// Path: sample/src/main/java/com/agna/ferro/sample/app/AppComponent.java
// @PerApplication
// @Component(modules = AppModule.class)
// public interface AppComponent {
// 
//     //Exposed to sub-graphs.
//     Context context();
// 
//     BookRepository bookRepository();
// 
// }
// 
// Path: sample/src/main/java/com/agna/ferro/sample/ui/common/dagger/ActivityModule.java
// @Module
// public class ActivityModule {
// 
//     private PersistentScreenScope persistentScreenScope;
// 
//     public ActivityModule(PersistentScreenScope persistentScreenScope) {
//         this.persistentScreenScope = persistentScreenScope;
//     }
// 
//     @Provides
//     @PerScreen
//     ActivityProvider provideActivityProvider() {
//         return new ActivityProvider(persistentScreenScope);
//     }
// 
// }


import com.agna.ferro.mvp.component.ScreenComponent;
import com.agna.ferro.mvp.component.scope.PerScreen;
import com.agna.ferro.sample.app.AppComponent;
import com.agna.ferro.sample.ui.common.dagger.ActivityModule;
import dagger.Component;
package com.agna.ferro.sample.ui.screen.catalog;



/**
 * Component for Catalog screen
 */
@PerScreen
@Component(dependencies = AppComponent.class, modules = ActivityModule.class)
// Path: ferro-mvp/src/main/java/com/agna/ferro/mvp/component/ScreenComponent.java
// public interface ScreenComponent<V extends BaseView> {
//     void inject(V view);
// }
// 
// Path: sample/src/main/java/com/agna/ferro/sample/app/AppComponent.java
// @PerApplication
// @Component(modules = AppModule.class)
// public interface AppComponent {
// 
//     //Exposed to sub-graphs.
//     Context context();
// 
//     BookRepository bookRepository();
// 
// }
// 
// Path: sample/src/main/java/com/agna/ferro/sample/ui/common/dagger/ActivityModule.java
// @Module
// public class ActivityModule {
// 
//     private PersistentScreenScope persistentScreenScope;
// 
//     public ActivityModule(PersistentScreenScope persistentScreenScope) {
//         this.persistentScreenScope = persistentScreenScope;
//     }
// 
//     @Provides
//     @PerScreen
//     ActivityProvider provideActivityProvider() {
//         return new ActivityProvider(persistentScreenScope);
//     }
// 
// }


// Path: sample/src/main/java/com/agna/ferro/sample/ui/screen/catalog/CatalogScreenComponent.java
import com.agna.ferro.mvp.component.ScreenComponent;
import com.agna.ferro.mvp.component.scope.PerScreen;
import com.agna.ferro.sample.app.AppComponent;
import com.agna.ferro.sample.ui.common.dagger.ActivityModule;
import dagger.Component;

package com.agna.ferro.sample.ui.screen.catalog;



/**
 * Component for Catalog screen
 */
@PerScreen
@Component(dependencies = AppComponent.class, modules = ActivityModule.class)
interface CatalogScreenComponent extends ScreenComponent<CatalogActivityView> {