Size: a a a

2019 October 17

M

Magomed in Dagger 2
До родительского onAttach вызывается
источник

M

Magomed in Dagger 2
так что ссылка на activity будет null
источник

АГ

Александр Горшков in Dagger 2
Magomed
так что ссылка на activity будет null
Не будет, там уже доступна созданная Activity, и она приходит как параметр этого метода
источник

M

Magomed in Dagger 2
Александр Горшков
Не будет, там уже доступна созданная Activity, и она приходит как параметр этого метода
ну так activity фрагмента эта ссылка еще не присвоена. Откуда ты ее достанешь, если не из другого скоупа?
источник

АГ

Александр Горшков in Dagger 2
Magomed
ну так activity фрагмента эта ссылка еще не присвоена. Откуда ты ее достанешь, если не из другого скоупа?
Я имел ввиду метод onAttach(). А вот про скоупы и модули… в этом и вопрос)
У меня и фрагмент также недоступен тут, ошибку пишет при компиляции, что фрагмент не запровайден
источник

M

Magomed in Dagger 2
Александр Горшков
Я имел ввиду метод onAttach(). А вот про скоупы и модули… в этом и вопрос)
У меня и фрагмент также недоступен тут, ошибку пишет при компиляции, что фрагмент не запровайден
не, я вру) Там будет доступна ссылка на активити уже
источник

АГ

Александр Горшков in Dagger 2
Magomed
не, я вру) Там будет доступна ссылка на активити уже
Но как ее получить в RepoModule?
источник

M

Magomed in Dagger 2
@Provides
@JvmStatic
fun provideMainActivity(repoFragment: RepoFragment) = repoFragment.activity as MainActivity
источник

АГ

Александр Горшков in Dagger 2
Magomed
@Provides
@JvmStatic
fun provideMainActivity(repoFragment: RepoFragment) = repoFragment.activity as MainActivity
Не работает, так как аннотацию
JvmStatic
туда тельзя поместить

only members in named objects and companion objects can be annotated with '@jvmstatic'
источник

M

Magomed in Dagger 2
Создай другой модуль, который будет включать в себя этот )
источник

M

Magomed in Dagger 2
@Module(includes = [SomeModule::class])
abstract class RepoModule
.....

object SomeModule {
   @Provides
   @JvmStatic
   fun provideMainActivity(repoFragment: RepoFragment) = repoFragment.activity as MainActivity
}
источник

M

Magomed in Dagger 2
Binds у тебя абстрактные методы в абстрактном классе, провайдс статические в обджекте
источник

АГ

Александр Горшков in Dagger 2
Magomed
@Module(includes = [SomeModule::class])
abstract class RepoModule
.....

object SomeModule {
   @Provides
   @JvmStatic
   fun provideMainActivity(repoFragment: RepoFragment) = repoFragment.activity as MainActivity
}
Нет, это тоже не работает, так как у даггера не получается найти
RepoFragment
источник

M

Magomed in Dagger 2
Так ты же инджектор для фрагмента прописываешь?
источник

M

Magomed in Dagger 2
@ContributesAndroidInjector
abstract fun repoFragment(): RepoFragment
источник

M

Magomed in Dagger 2
И наследуешь RepoFragment от DaggerFragment?
источник

АГ

Александр Горшков in Dagger 2
Magomed
Так ты же инджектор для фрагмента прописываешь?
Да, прописываю. Только у меня уже там:
@ContributesAndroidInjector(modules = [RepoModule::class])
   abstract fun contributeRepoFragment(): RepoFragment
источник

АГ

Александр Горшков in Dagger 2
Magomed
И наследуешь RepoFragment от DaggerFragment?
Да
источник
2019 October 29

SV

Sviat Volkov in Dagger 2
полезный тред для тех кто вздумает полезть в кодлабы гугла 😉 https://twitter.com/VasiliyZukanov/status/1188549948037570561
источник
2019 October 31

ИЯ

Илья Ярлыкин in Dagger 2
Народ, нормально ли в Viper'е делать один компонент для всего приложения и много модулей, которые подтягивают экраны, их презентеры, интеракторы и т.д.
источник