// Path: app/src/main/java/com/nilhcem/droidconde/DroidconApp.java
// @DebugLog
// public class DroidconApp extends Application {
// 
//     private AppComponent component;
// 
//     public static DroidconApp get(Context context) {
//         return (DroidconApp) context.getApplicationContext();
//     }
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
//         AndroidThreeTen.init(this);
//         initGraph();
//         initLogger();
//     }
// 
//     public AppComponent component() {
//         return component;
//     }
// 
//     private void initGraph() {
//         component = AppComponent.Initializer.init(this);
//     }
// 
//     private void initLogger() {
//         Timber.plant(new Timber.DebugTree());
//     }
// }
// 
// Path: app/src/main/java/com/nilhcem/droidconde/core/dagger/module/ApiModule.java
// @Module
// public final class ApiModule {
// 
//     @Provides @Singleton ApiEndpoint provideApiEndpoint(Application context) {
//         return ApiEndpoint.get(context);
//     }
// 
//     @Provides @Singleton Retrofit provideRetrofit(OkHttpClient client, Moshi moshi, ApiEndpoint endpoint) {
//         return new Retrofit.Builder()
//                 .client(client)
//                 .baseUrl(endpoint.url)
//                 .addConverterFactory(MoshiConverterFactory.create(moshi))
//                 .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
//                 .build();
//     }
// 
//     @Provides @Singleton
//     DroidconService provideDroidconService(Retrofit retrofit) {
//         return retrofit.create(DroidconService.class);
//     }
// }
// 
// Path: app/src/main/java/com/nilhcem/droidconde/core/dagger/module/AppModule.java
// @Module
// public final class AppModule {
// 
//     private final DroidconApp app;
// 
//     public AppModule(DroidconApp app) {
//         this.app = app;
//     }
// 
//     @Provides @Singleton Application provideApplication() {
//         return app;
//     }
// }
// 
// Path: app/src/main/java/com/nilhcem/droidconde/core/dagger/module/DataModule.java
// @Module(includes = OkHttpModule.class)
// public final class DataModule {
// 
//     private static final long DISK_CACHE_SIZE = 31_457_280; // 30MB
// 
//     @Provides @Singleton SharedPreferences provideSharedPreferences(Application app) {
//         return PreferenceManager.getDefaultSharedPreferences(app);
//     }
// 
//     @Provides @Singleton Moshi provideMoshi(LocalDateTimeAdapter localDateTimeAdapter) {
//         return new Moshi.Builder()
//                 .add(localDateTimeAdapter)
//                 .build();
//     }
// 
//     @Provides @Singleton OkHttpClient.Builder provideOkHttpClientBuilder(Application app) {
//         File cacheDir = new File(app.getCacheDir(), "http");
//         Cache cache = new Cache(cacheDir, DISK_CACHE_SIZE);
//         return new OkHttpClient.Builder().cache(cache);
//     }
// 
//     @Provides @Singleton Picasso providePicasso(Application app, OkHttpClient client) {
//         return new Picasso.Builder(app)
//                 .downloader(new OkHttp3Downloader(client))
//                 .listener((picasso, uri, e) -> Timber.e(e, "Failed to load image: %s", uri))
//                 .build();
//     }
// }
// 
// Path: app/src/main/java/com/nilhcem/droidconde/core/dagger/module/DatabaseModule.java
// @Module
// public class DatabaseModule {
// 
//     static final String TAG = "database";
// 
//     @Provides @Singleton SQLiteOpenHelper provideSQLiteOpenHelper(Application application) {
//         return new DbOpenHelper(application);
//     }
// 
//     @Provides @Singleton SqlBrite provideSqlBrite() {
//         return SqlBrite.create(Timber.tag(TAG)::v);
//     }
// 
//     @Provides @Singleton BriteDatabase provideBriteDatabase(SqlBrite sqlBrite, SQLiteOpenHelper helper) {
//         return sqlBrite.wrapDatabaseHelper(helper, Schedulers.immediate());
//     }
// }


import com.nilhcem.droidconde.DroidconApp;
import com.nilhcem.droidconde.core.dagger.module.ApiModule;
import com.nilhcem.droidconde.core.dagger.module.AppModule;
import com.nilhcem.droidconde.core.dagger.module.DataModule;
import com.nilhcem.droidconde.core.dagger.module.DatabaseModule;
import javax.inject.Singleton;
import dagger.Component;
package com.nilhcem.droidconde.core.dagger;




@Singleton
@Component(modules = {AppModule.class, ApiModule.class, DataModule.class, DatabaseModule.class})
public interface AppComponent extends InternalAppGraph {

    /**
     * An initializer that creates the internal graph from an application.
     */
    final class Initializer {

        private Initializer() {
            throw new UnsupportedOperationException();
        }

// Path: app/src/main/java/com/nilhcem/droidconde/DroidconApp.java
// @DebugLog
// public class DroidconApp extends Application {
// 
//     private AppComponent component;
// 
//     public static DroidconApp get(Context context) {
//         return (DroidconApp) context.getApplicationContext();
//     }
// 
//     @Override
//     public void onCreate() {
//         super.onCreate();
//         AndroidThreeTen.init(this);
//         initGraph();
//         initLogger();
//     }
// 
//     public AppComponent component() {
//         return component;
//     }
// 
//     private void initGraph() {
//         component = AppComponent.Initializer.init(this);
//     }
// 
//     private void initLogger() {
//         Timber.plant(new Timber.DebugTree());
//     }
// }
// 
// Path: app/src/main/java/com/nilhcem/droidconde/core/dagger/module/ApiModule.java
// @Module
// public final class ApiModule {
// 
//     @Provides @Singleton ApiEndpoint provideApiEndpoint(Application context) {
//         return ApiEndpoint.get(context);
//     }
// 
//     @Provides @Singleton Retrofit provideRetrofit(OkHttpClient client, Moshi moshi, ApiEndpoint endpoint) {
//         return new Retrofit.Builder()
//                 .client(client)
//                 .baseUrl(endpoint.url)
//                 .addConverterFactory(MoshiConverterFactory.create(moshi))
//                 .addCallAdapterFactory(RxJavaCallAdapterFactory.create())
//                 .build();
//     }
// 
//     @Provides @Singleton
//     DroidconService provideDroidconService(Retrofit retrofit) {
//         return retrofit.create(DroidconService.class);
//     }
// }
// 
// Path: app/src/main/java/com/nilhcem/droidconde/core/dagger/module/AppModule.java
// @Module
// public final class AppModule {
// 
//     private final DroidconApp app;
// 
//     public AppModule(DroidconApp app) {
//         this.app = app;
//     }
// 
//     @Provides @Singleton Application provideApplication() {
//         return app;
//     }
// }
// 
// Path: app/src/main/java/com/nilhcem/droidconde/core/dagger/module/DataModule.java
// @Module(includes = OkHttpModule.class)
// public final class DataModule {
// 
//     private static final long DISK_CACHE_SIZE = 31_457_280; // 30MB
// 
//     @Provides @Singleton SharedPreferences provideSharedPreferences(Application app) {
//         return PreferenceManager.getDefaultSharedPreferences(app);
//     }
// 
//     @Provides @Singleton Moshi provideMoshi(LocalDateTimeAdapter localDateTimeAdapter) {
//         return new Moshi.Builder()
//                 .add(localDateTimeAdapter)
//                 .build();
//     }
// 
//     @Provides @Singleton OkHttpClient.Builder provideOkHttpClientBuilder(Application app) {
//         File cacheDir = new File(app.getCacheDir(), "http");
//         Cache cache = new Cache(cacheDir, DISK_CACHE_SIZE);
//         return new OkHttpClient.Builder().cache(cache);
//     }
// 
//     @Provides @Singleton Picasso providePicasso(Application app, OkHttpClient client) {
//         return new Picasso.Builder(app)
//                 .downloader(new OkHttp3Downloader(client))
//                 .listener((picasso, uri, e) -> Timber.e(e, "Failed to load image: %s", uri))
//                 .build();
//     }
// }
// 
// Path: app/src/main/java/com/nilhcem/droidconde/core/dagger/module/DatabaseModule.java
// @Module
// public class DatabaseModule {
// 
//     static final String TAG = "database";
// 
//     @Provides @Singleton SQLiteOpenHelper provideSQLiteOpenHelper(Application application) {
//         return new DbOpenHelper(application);
//     }
// 
//     @Provides @Singleton SqlBrite provideSqlBrite() {
//         return SqlBrite.create(Timber.tag(TAG)::v);
//     }
// 
//     @Provides @Singleton BriteDatabase provideBriteDatabase(SqlBrite sqlBrite, SQLiteOpenHelper helper) {
//         return sqlBrite.wrapDatabaseHelper(helper, Schedulers.immediate());
//     }
// }


// Path: app/src/internal/java/com/nilhcem/droidconde/core/dagger/AppComponent.java
import com.nilhcem.droidconde.DroidconApp;
import com.nilhcem.droidconde.core.dagger.module.ApiModule;
import com.nilhcem.droidconde.core.dagger.module.AppModule;
import com.nilhcem.droidconde.core.dagger.module.DataModule;
import com.nilhcem.droidconde.core.dagger.module.DatabaseModule;
import javax.inject.Singleton;
import dagger.Component;

package com.nilhcem.droidconde.core.dagger;




@Singleton
@Component(modules = {AppModule.class, ApiModule.class, DataModule.class, DatabaseModule.class})
public interface AppComponent extends InternalAppGraph {

    /**
     * An initializer that creates the internal graph from an application.
     */
    final class Initializer {

        private Initializer() {
            throw new UnsupportedOperationException();
        }

        public static AppComponent init(DroidconApp app) {