// Path: app/src/main/java/fr/guddy/android_modular_reloaded/App.java
// public class App extends Application implements HasActivityInjector {
//     //region Injected fields
//     @Inject
//     public DispatchingAndroidInjector<Activity> dispatchingActivityInjector;
//     //endregion
// 
//     //region Fields
//     private ComponentApp mComponentApp;
//     //endregion
// 
//     //region Lifecycle
//     @Override
//     public void onCreate() {
//         super.onCreate();
//         buildComponent();
//         mComponentApp.inject(this);
//     }
//     //endregion
// 
//     //region DI setup
//     private void buildComponent() {
//         mComponentApp = DaggerComponentApp.builder()
//                 .application(this)
//                 .moduleApp(new ModuleApp(this))
//                 .build();
//     }
// 
//     @VisibleForTesting
//     public void setComponentApp(@NonNull final ComponentApp pComponentApp) {
//         mComponentApp = pComponentApp;
//     }
//     //endregion
// 
//     //region HasActivityInjector
//     @Override
//     public AndroidInjector<Activity> activityInjector() {
//         return dispatchingActivityInjector;
//     }
//     //endregion
// }


import javax.inject.Singleton;
import dagger.BindsInstance;
import dagger.Component;
import dagger.android.support.AndroidSupportInjectionModule;
import fr.guddy.android_modular_reloaded.App;
package fr.guddy.android_modular_reloaded.di;



@Singleton
@Component(modules = {
        AndroidSupportInjectionModule.class,
        ModuleApp.class,
        ModuleMainActivity.class,
        ActivityBindingModule.class,
})
public interface ComponentApp {
    @Component.Builder
    interface Builder {
        @BindsInstance
// Path: app/src/main/java/fr/guddy/android_modular_reloaded/App.java
// public class App extends Application implements HasActivityInjector {
//     //region Injected fields
//     @Inject
//     public DispatchingAndroidInjector<Activity> dispatchingActivityInjector;
//     //endregion
// 
//     //region Fields
//     private ComponentApp mComponentApp;
//     //endregion
// 
//     //region Lifecycle
//     @Override
//     public void onCreate() {
//         super.onCreate();
//         buildComponent();
//         mComponentApp.inject(this);
//     }
//     //endregion
// 
//     //region DI setup
//     private void buildComponent() {
//         mComponentApp = DaggerComponentApp.builder()
//                 .application(this)
//                 .moduleApp(new ModuleApp(this))
//                 .build();
//     }
// 
//     @VisibleForTesting
//     public void setComponentApp(@NonNull final ComponentApp pComponentApp) {
//         mComponentApp = pComponentApp;
//     }
//     //endregion
// 
//     //region HasActivityInjector
//     @Override
//     public AndroidInjector<Activity> activityInjector() {
//         return dispatchingActivityInjector;
//     }
//     //endregion
// }


// Path: app/src/main/java/fr/guddy/android_modular_reloaded/di/ComponentApp.java
import javax.inject.Singleton;
import dagger.BindsInstance;
import dagger.Component;
import dagger.android.support.AndroidSupportInjectionModule;
import fr.guddy.android_modular_reloaded.App;

package fr.guddy.android_modular_reloaded.di;



@Singleton
@Component(modules = {
        AndroidSupportInjectionModule.class,
        ModuleApp.class,
        ModuleMainActivity.class,
        ActivityBindingModule.class,
})
public interface ComponentApp {
    @Component.Builder
    interface Builder {
        @BindsInstance
        Builder application(final App pApp);