/** * The Application Dagger module for the Imgur sample. */ @Module class ApplicationModule { @Provides OkHttpClient okHttpClient() { return new OkHttpClient(); } }
@Module abstract class MainActivityModule { @ContributesAndroidInjector abstract MainActivity contributeMainActivityInjector(); }
@Module(complete = false, library = true) class PumpModule { @Provides Pump providePump(Thermosiphon pump) { return pump; } }
@Module( injects = HomeActivity.class, complete = false ) public class DemoModule { // TODO put your application-specific providers here! }
@Module( injects = CoffeeApp.class, includes = PumpModule.class ) class DripCoffeeModule { @Provides @Singleton Heater provideHeater() { return new ElectricHeater(); } }
/** * Dagger module that provides user related collaborators. */ @Module public class UserModule { public UserModule() {} }
@Module interface GistsViewFragmentProvider { @ContributesAndroidInjector GistFragment gistFragment(); }
@Module interface IssuesViewFragmentProvider { @ContributesAndroidInjector IssueFragment issueFragment(); }
@Module interface IssueSearchFragmentProvider { @ContributesAndroidInjector SearchIssueListFragment searchIssueListFragment(); }
@Module interface CommitCompareViewFragmentProvider { @ContributesAndroidInjector CommitCompareListFragment commitCompareListFragment(); }
@Module interface CreateCommentFragmentProvider { @ContributesAndroidInjector RawCommentFragment rawCommentFragment(); @ContributesAndroidInjector RenderedCommentFragment renderedCommentFragment(); }
@Module( injects = A.class, // for testing complete = false ) static class RootModule { final A a; RootModule(A a) { this.a = a; } @Provides A provideA() { return a; } }
@Module static class ModuleWithBinding { @Provides String provideString() { return "injected"; } }
@Module static class ModuleWithConstructor { private final String value; ModuleWithConstructor(String value) { this.value = value; } @Provides String provideString() { return value; } }
@Module(library = true) static class DuplicateModule { @Provides @Singleton String provideFoo() { return "foo"; } @Provides @Singleton String provideBar() { return "bar"; } }
@Module(addsTo = RootModule.class, injects = Main.class ) static class ExtensionModule { @Provides(type=SET) @Singleton Integer provideC() { return counter.getAndIncrement(); } @Provides(type=SET) @Singleton Integer provideD() { return counter.getAndIncrement(); } }
@Module(injects = RealSingleton.class) static class RootModule { @Provides(type=SET) @Singleton Integer provideA() { return counter.getAndIncrement(); } @Provides(type=SET) @Singleton Integer provideB() { return counter.getAndIncrement(); } }
@Module(injects = Entry$Point.class) static class TestModule { @Provides String aString() { return "a"; } }
@Module(includes = ExtensionModule.class, overrides = true) static class TestModule { @Provides(type=SET) @Singleton Integer provide9999() { return 9999; } }
@Module(injects = TestEntryPoint.class) static class ModuleWithEntryPoint { }