package com.arcao.trackables.internal.di.component; import android.content.Context; import com.arcao.trackables.App; import com.arcao.trackables.data.DataModule; import com.arcao.trackables.data.persistence.PersistenceModule; import com.arcao.trackables.exception.ExceptionModule; import com.arcao.trackables.geocaching.GeocachingModule; import com.arcao.trackables.internal.di.AppGraph; import com.arcao.trackables.internal.di.module.AppModule; import com.arcao.trackables.preference.PreferenceModule; import javax.inject.Singleton; import dagger.Component; @Singleton @Component(modules = { DataModule.class, AppModule.class, ExceptionModule.class, GeocachingModule.class, PreferenceModule.class, PersistenceModule.class }) public interface AppComponent extends AppGraph { void inject(App app); App app(); Context context(); final class Initializer { public static AppComponent init(App app) { return DaggerAppComponent.builder() .appModule(new AppModule(app)) .build(); } private Initializer() {} // No instances. } }