TravelMateApp .java
public class TravelMateApp extends DaggerApplication {
@Override
protected AndroidInjector<? extends DaggerApplication> applicationInjector() {
return DaggerAppComponent.create();
}
}
AppComponent.java
@Singleton
@Component(modules = {
ActivityBindingModule.class,
AndroidSupportInjectionModule.class})
public interface AppComponent extends AndroidInjector<DaggerApplication>{
@Override
void inject(DaggerApplication instance);
}
ActivityBindingModule.java
@ActivityScoped
@ContributesAndroidInjector(modules = MainModule.class)
abstract MainActivity mainActivity();
MainModule.java
@Module
public abstract class MainModule {
@FragmentScoped
@ContributesAndroidInjector
abstract HomeFragment homeFragment();
@FragmentScoped
@ContributesAndroidInjector
abstract DiscoveryFragment discoveryFragment();
@FragmentScoped
@ContributesAndroidInjector
abstract ContactFragment contactFragment();
@FragmentScoped
@ContributesAndroidInjector
abstract MeFragment meFragment();
}
build.gradle
/*Dagger2*/
implementation 'com.google.dagger:dagger:2.15'
annotationProcessor 'com.google.dagger:dagger-compiler:2.15'
/*Dagger-Android*/
implementation "com.google.dagger:dagger-android:2.15"
implementation 'com.google.dagger:dagger-android-support:2.15'
annotationProcessor 'com.google.dagger:dagger-android-processor:2.15'