@Singleton
public class UserRepository {
// ...
}
@Singleton
@Component(modules = {UserModule.class})
public interface AppComponent {
UserRepository provideUserRepository();
// ...
}
@ActivityScoped
@Component(dependencies = AppComponent.class, modules = {UserModule.class})
public interface ActivityComponent {
void inject(MainActivity activity);
// ...
}
public class MainActivity extends AppCompatActivity {
@Inject
UserRepository userRepository;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityComponent component = DaggerActivityComponent.builder()
.appComponent(((MyApplication) getApplication()).getAppComponent())
.build();
component.inject(this);
}
}