// Path: app/src/main/java/com/konifar/annict/di/AppComponent.java
// @Singleton
// @Component(modules = AppModule.class)
// public interface AppComponent {
// 
//     void inject(StethoWrapper stethoDelegator);
// 
//     ActivityComponent plus(ActivityModule module);
// }
// 
// Path: app/src/main/java/com/konifar/annict/di/AppModule.java
// @Module
// public class AppModule {
// 
//     static final String CACHE_FILE_NAME = "okhttp.cache";
// 
//     static final long MAX_CACHE_SIZE = 4 * 1024 * 1024;
// 
//     static final String SHARED_PREF_NAME = "preferences";
// 
//     private Context context;
// 
//     public AppModule(Application app) {
//         context = app;
//     }
// 
//     @Provides
//     public Context provideContext() {
//         return context;
//     }
// 
//     @Singleton
//     @Provides
//     public OkHttpClient provideHttpClient(Context context, Interceptor interceptor) {
//         File cacheDir = new File(context.getCacheDir(), CACHE_FILE_NAME);
//         Cache cache = new Cache(cacheDir, MAX_CACHE_SIZE);
// 
//         OkHttpClient.Builder c = new OkHttpClient.Builder().cache(cache).addInterceptor(interceptor);
// 
//         return c.build();
//     }
// 
//     @Provides
//     public Interceptor provideRequestInterceptor(Context context) {
//         return new RequestInterceptor(context);
//     }
// 
//     @Provides
//     public SharedPreferences provideSharedPreferences(Context context) {
//         return context.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE);
//     }
// 
//     @Provides
//     public CompositeSubscription provideCompositeSubscription() {
//         return new CompositeSubscription();
//     }
// 
//     @Singleton
//     @Provides
//     public EventBus provideEventBus() {
//         return new EventBus();
//     }
// 
//     @Singleton
//     @Provides
//     public StatusRepository provideStatusRepository(StatusRepositoryImpl repository) {
//         return repository;
//     }
// 
//     @Singleton
//     @Provides
//     public WorkRepository provideWorkRepository(WorkRepositoryImpl repository) {
//         return repository;
//     }
// 
//     @Singleton
//     @Provides
//     public ProgramRepository provideProgramRepository(ProgramRepositoryImpl repository) {
//         return repository;
//     }
// 
//     @Singleton
//     @Provides
//     public RecordRepository provideRecordRepository(RecordRepositoryImpl repository) {
//         return repository;
//     }
// }


import com.konifar.annict.di.AppComponent;
import com.konifar.annict.di.AppModule;
import com.konifar.annict.di.DaggerAppComponent;
import com.squareup.leakcanary.LeakCanary;
import android.app.Application;
import android.support.annotation.NonNull;
package com.konifar.annict;



public class MainApplication extends Application {

    AppComponent appComponent;

    @NonNull
    public AppComponent getComponent() {
        return appComponent;
    }

    @Override
    public void onCreate() {
        super.onCreate();

// Path: app/src/main/java/com/konifar/annict/di/AppComponent.java
// @Singleton
// @Component(modules = AppModule.class)
// public interface AppComponent {
// 
//     void inject(StethoWrapper stethoDelegator);
// 
//     ActivityComponent plus(ActivityModule module);
// }
// 
// Path: app/src/main/java/com/konifar/annict/di/AppModule.java
// @Module
// public class AppModule {
// 
//     static final String CACHE_FILE_NAME = "okhttp.cache";
// 
//     static final long MAX_CACHE_SIZE = 4 * 1024 * 1024;
// 
//     static final String SHARED_PREF_NAME = "preferences";
// 
//     private Context context;
// 
//     public AppModule(Application app) {
//         context = app;
//     }
// 
//     @Provides
//     public Context provideContext() {
//         return context;
//     }
// 
//     @Singleton
//     @Provides
//     public OkHttpClient provideHttpClient(Context context, Interceptor interceptor) {
//         File cacheDir = new File(context.getCacheDir(), CACHE_FILE_NAME);
//         Cache cache = new Cache(cacheDir, MAX_CACHE_SIZE);
// 
//         OkHttpClient.Builder c = new OkHttpClient.Builder().cache(cache).addInterceptor(interceptor);
// 
//         return c.build();
//     }
// 
//     @Provides
//     public Interceptor provideRequestInterceptor(Context context) {
//         return new RequestInterceptor(context);
//     }
// 
//     @Provides
//     public SharedPreferences provideSharedPreferences(Context context) {
//         return context.getSharedPreferences(SHARED_PREF_NAME, Context.MODE_PRIVATE);
//     }
// 
//     @Provides
//     public CompositeSubscription provideCompositeSubscription() {
//         return new CompositeSubscription();
//     }
// 
//     @Singleton
//     @Provides
//     public EventBus provideEventBus() {
//         return new EventBus();
//     }
// 
//     @Singleton
//     @Provides
//     public StatusRepository provideStatusRepository(StatusRepositoryImpl repository) {
//         return repository;
//     }
// 
//     @Singleton
//     @Provides
//     public WorkRepository provideWorkRepository(WorkRepositoryImpl repository) {
//         return repository;
//     }
// 
//     @Singleton
//     @Provides
//     public ProgramRepository provideProgramRepository(ProgramRepositoryImpl repository) {
//         return repository;
//     }
// 
//     @Singleton
//     @Provides
//     public RecordRepository provideRecordRepository(RecordRepositoryImpl repository) {
//         return repository;
//     }
// }


// Path: app/src/main/java/com/konifar/annict/MainApplication.java
import com.konifar.annict.di.AppComponent;
import com.konifar.annict.di.AppModule;
import com.konifar.annict.di.DaggerAppComponent;
import com.squareup.leakcanary.LeakCanary;
import android.app.Application;
import android.support.annotation.NonNull;

package com.konifar.annict;



public class MainApplication extends Application {

    AppComponent appComponent;

    @NonNull
    public AppComponent getComponent() {
        return appComponent;
    }

    @Override
    public void onCreate() {
        super.onCreate();

        appComponent = DaggerAppComponent.builder().appModule(new AppModule(this)).build();