// Path: app/src/main/java/com/lucilu/rxdynamicsearch/SearchApplication.java
// public final class SearchApplication extends Application {
// 
//     @Inject
//     Timber.Tree mTimberTree;
// 
//     @Nullable
//     private AppComponent mComponent;
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
// 
//         onInject();
//         initializeLogging();
//     }
// 
//     private void onInject() {
//         mComponent = AppComponent.Initializer.init(this);
//         mComponent.inject(this);
//     }
// 
//     private void initializeLogging() {
//         Timber.plant(mTimberTree);
//     }
// 
//     @NonNull
//     public AppComponent getAppComponent() {
//         return get(mComponent);
//     }
// }
// 
// Path: app/src/main/java/com/lucilu/rxdynamicsearch/dagger/module/ActivityModule.java
// @Module
// public final class ActivityModule {
// 
//     @NonNull
//     private final Activity mActivity;
// 
//     public ActivityModule(@NonNull final Activity activity) {
//         mActivity = get(activity);
//     }
// 
//     @ActivityScope
//     @Provides
//     Activity providesActivity() {
//         return mActivity;
//     }
// 
//     @ActivityScope
//     @ForActivity
//     @Provides
//     Context providesActivityContext() {
//         return mActivity;
//     }
// }
// 
// Path: app/src/main/java/com/lucilu/rxdynamicsearch/dagger/module/AppModule.java
// @Module
// public final class AppModule {
// 
//     @NonNull
//     private final Application mApplication;
// 
//     public AppModule(@NonNull final Application app) {
//         mApplication = get(app);
//     }
// 
//     @Singleton
//     @Provides
//     Application providesApplication() {
//         return mApplication;
//     }
// 
//     @Singleton
//     @ForApplication
//     @Provides
//     Context providesApplicationContext() {
//         return mApplication.getApplicationContext();
//     }
// }
// 
// Path: app/src/debug/java/com/lucilu/rxdynamicsearch/dagger/module/InstrumentationModule.java
// @Module
// public class InstrumentationModule {
// 
//     @Singleton
//     @Provides
//     Timber.Tree provideTimberTree() {
//         return new Timber.DebugTree();
//     }
// }
// 
// Path: app/src/main/java/com/lucilu/rxdynamicsearch/dagger/module/ProviderModule.java
// @Module(includes = DataModule.class)
// public final class ProviderModule {
// 
//     @Provides
//     IResourceProvider provideResourceProvider(@ForApplication final Context context) {
//         return new ResourceProvider(context);
//     }
// 
//     @Provides
//     IJsonParserProvider provideJsonParserProvider(@NonNull final Gson gson,
//                                                   @NonNull final IResourceProvider resourceProvider) {
//         return new JsonParserProvider(gson, resourceProvider);
//     }
// }


import com.lucilu.rxdynamicsearch.SearchApplication;
import com.lucilu.rxdynamicsearch.dagger.module.ActivityModule;
import com.lucilu.rxdynamicsearch.dagger.module.AppModule;
import com.lucilu.rxdynamicsearch.dagger.module.InstrumentationModule;
import com.lucilu.rxdynamicsearch.dagger.module.ProviderModule;
import javax.inject.Singleton;
import dagger.Component;
package com.lucilu.rxdynamicsearch.dagger.component;




/**
 * Top level injection component.
 */
@Singleton
@Component(modules = {InstrumentationModule.class, AppModule.class, ProviderModule.class})
public interface AppComponent {

    void inject(SearchApplication app);

// Path: app/src/main/java/com/lucilu/rxdynamicsearch/SearchApplication.java
// public final class SearchApplication extends Application {
// 
//     @Inject
//     Timber.Tree mTimberTree;
// 
//     @Nullable
//     private AppComponent mComponent;
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
// 
//         onInject();
//         initializeLogging();
//     }
// 
//     private void onInject() {
//         mComponent = AppComponent.Initializer.init(this);
//         mComponent.inject(this);
//     }
// 
//     private void initializeLogging() {
//         Timber.plant(mTimberTree);
//     }
// 
//     @NonNull
//     public AppComponent getAppComponent() {
//         return get(mComponent);
//     }
// }
// 
// Path: app/src/main/java/com/lucilu/rxdynamicsearch/dagger/module/ActivityModule.java
// @Module
// public final class ActivityModule {
// 
//     @NonNull
//     private final Activity mActivity;
// 
//     public ActivityModule(@NonNull final Activity activity) {
//         mActivity = get(activity);
//     }
// 
//     @ActivityScope
//     @Provides
//     Activity providesActivity() {
//         return mActivity;
//     }
// 
//     @ActivityScope
//     @ForActivity
//     @Provides
//     Context providesActivityContext() {
//         return mActivity;
//     }
// }
// 
// Path: app/src/main/java/com/lucilu/rxdynamicsearch/dagger/module/AppModule.java
// @Module
// public final class AppModule {
// 
//     @NonNull
//     private final Application mApplication;
// 
//     public AppModule(@NonNull final Application app) {
//         mApplication = get(app);
//     }
// 
//     @Singleton
//     @Provides
//     Application providesApplication() {
//         return mApplication;
//     }
// 
//     @Singleton
//     @ForApplication
//     @Provides
//     Context providesApplicationContext() {
//         return mApplication.getApplicationContext();
//     }
// }
// 
// Path: app/src/debug/java/com/lucilu/rxdynamicsearch/dagger/module/InstrumentationModule.java
// @Module
// public class InstrumentationModule {
// 
//     @Singleton
//     @Provides
//     Timber.Tree provideTimberTree() {
//         return new Timber.DebugTree();
//     }
// }
// 
// Path: app/src/main/java/com/lucilu/rxdynamicsearch/dagger/module/ProviderModule.java
// @Module(includes = DataModule.class)
// public final class ProviderModule {
// 
//     @Provides
//     IResourceProvider provideResourceProvider(@ForApplication final Context context) {
//         return new ResourceProvider(context);
//     }
// 
//     @Provides
//     IJsonParserProvider provideJsonParserProvider(@NonNull final Gson gson,
//                                                   @NonNull final IResourceProvider resourceProvider) {
//         return new JsonParserProvider(gson, resourceProvider);
//     }
// }


// Path: app/src/main/java/com/lucilu/rxdynamicsearch/dagger/component/AppComponent.java
import com.lucilu.rxdynamicsearch.SearchApplication;
import com.lucilu.rxdynamicsearch.dagger.module.ActivityModule;
import com.lucilu.rxdynamicsearch.dagger.module.AppModule;
import com.lucilu.rxdynamicsearch.dagger.module.InstrumentationModule;
import com.lucilu.rxdynamicsearch.dagger.module.ProviderModule;
import javax.inject.Singleton;
import dagger.Component;

package com.lucilu.rxdynamicsearch.dagger.component;




/**
 * Top level injection component.
 */
@Singleton
@Component(modules = {InstrumentationModule.class, AppModule.class, ProviderModule.class})
public interface AppComponent {

    void inject(SearchApplication app);

    MainActivityComponent plusMainActivity(ActivityModule activityModule);