Ответ
@ContributesAndroidInjector - аннотация для фрагментов в Dagger. Она генерирует необходимый код для внедрения зависимостей во фрагмент.
Пример использования в модуле:
@Module
abstract class FragmentModule {
@ContributesAndroidInjector
abstract fun contributeMyFragment(): MyFragment
}
Ключевые моменты:
- Модуль должен быть абстрактным
- Метод должен быть абстрактным и возвращать тип фрагмента
- Dagger сгенерирует подкапсулу для фрагмента
- Фрагмент должен быть добавлен в компонент через
AndroidInjection.inject(this)вonAttach()
Для работы также нужен AndroidSupportInjectionModule в компоненте.