package com.tutosandroidfrance.dagger2sample.dagger2.component; import com.tutosandroidfrance.dagger2sample.MainActivity; import com.tutosandroidfrance.dagger2sample.dagger2.module.ContextModule; import com.tutosandroidfrance.dagger2sample.dagger2.module.GithubModule; import com.tutosandroidfrance.dagger2sample.storage.Storage; import com.tutosandroidfrance.dagger2sample.webservice.GithubService; import java.util.Objects; import javax.inject.Singleton; import dagger.Component; /** * Composant principale de ce tutoriel, GithubComponent va utiliser Dagger2 afin de créer le GithubService et le Storage * Ce composant est un singleton, c'est à dire qu'il n'existe qu'un fois lors de l'éxécution de l'application * * dependencies = {AppComponent.class} indique que ce Component dépend de AppComponent afin * qu'il lui @Provide un objet, dans notre cas, le Context * * modules = {StorageModule.class, RestModule.class} indique que ce Component utilisera * les fonctions indiquées en @Provide de StorageModule et RestModule afin de générer les GithubService et Storage */ @Singleton @Component(modules = {ContextModule.class, GithubModule.class}) public interface GithubComponent { GithubService githubService(); Storage storage(); void inject(MainActivity mainActivity); }