Size: a a a

2019 October 08

E

Edgar in Dagger 2
salom qizlar
источник
2019 October 10

S

Serhei in Dagger 2
Привет, ребят, у кого не смотрю, у всех DI через Dagger по разному прикручен
и это сильно зависит от версии, как я понимаю
где есть нормальная дока для каждый версии даггера?
ну или для ключевых версий
источник

IG

Ilya Gulya in Dagger 2
Serhei
Привет, ребят, у кого не смотрю, у всех DI через Dagger по разному прикручен
и это сильно зависит от версии, как я понимаю
где есть нормальная дока для каждый версии даггера?
ну или для ключевых версий
Это не зависит от версии.
Самое крупное что случилось - Dagger Android в Dagger 2.10, добавил новый вариант инъекции в системные компоненты.
Опиши подробнее, что конкретно по-разному с твоей точки зрения?
источник

S

Serhei in Dagger 2
Ilya Gulya
Это не зависит от версии.
Самое крупное что случилось - Dagger Android в Dagger 2.10, добавил новый вариант инъекции в системные компоненты.
Опиши подробнее, что конкретно по-разному с твоей точки зрения?
аннотации методов в модулях, компонентах, как его инжектят в Application class
источник

S

Serhei in Dagger 2
хотя наверное это зависит от потребностей
источник

N

Nikolay in Dagger 2
И от личных предпочтений
источник

N

Nikolay in Dagger 2
Я бы сказал что нету единственного правильного пути сделать что-то
источник
2019 October 11

КС

Константин Синчило in Dagger 2
Привет всем. Хотел бы услышать вашего совета.
В моей системе много backendUrl и этот список меняется каждый месяц.
1) Вопрос про динамические изменения baseUrl, в связке dagger2 и провайд ретрофита.
Я понимаю,что если бы был постоянный список урлов,я бы для каждого урл провайдил бы отдельный retrofit.

Есть какой-нибудь способ это реализовать? не перезагружая все даггер компоненты

2) Я бы хотел реализовать многопользовательность (типо как в телеграме).
у меня есть ModelsModule и остальные компоненты, в моделях которых заполнены данные юзером.
Можно ли переключать как-то юзеров ?

P.S возможно,криво описал
источник

КС

Константин Синчило in Dagger 2
1) qualifier для каждого ретрофита?
источник

SV

Sviat Volkov in Dagger 2
Константин Синчило
1) qualifier для каждого ретрофита?
как это будет работать?
источник

SV

Sviat Volkov in Dagger 2
если урлы постоянно меняются в рантайме, то тут уже не DI а что-то типа фабрики писать, которая по урлу будет возвращать ретрофит сервис.

Если все твои backendUrl известны при компиляции, то да, через квалифаеры можно
источник
2019 October 17

АГ

Александр Горшков in Dagger 2
Всем привет. Изучаю пример от Google и использованием архитектурных компонентов.
https://github.com/android/architecture-components-samples/tree/master/GithubBrowserSample
Интересует вопрос по Dagger 2 в контексте этого приложения.

Там пример кода, который билдит фрагменты:

@Module
abstract class FragmentBuildersModule {
   @ContributesAndroidInjector
   abstract fun contributeRepoFragment(): RepoFragment

   @ContributesAndroidInjector
   abstract fun contributeUserFragment(): UserFragment

   @ContributesAndroidInjector
   abstract fun contributeSearchFragment(): SearchFragment
}


В свою очередь, данный модуль является частью другого модуля:

@Module
abstract class MainActivityModule {
   @ContributesAndroidInjector(modules = [FragmentBuildersModule::class])
   abstract fun contributeMainActivity(): MainActivity
}


Вопрос заключается в следующем.

Если, например, я захочу сделать:
@Module
abstract class FragmentBuildersModule {
   @ContributesAndroidInjector(modules = [RepoModule::class])
   abstract fun contributeRepoFragment(): RepoFragment

   @ContributesAndroidInjector
   abstract fun contributeUserFragment(): UserFragment

   @ContributesAndroidInjector
   abstract fun contributeSearchFragment(): SearchFragment
}


то как можно сделать так, чтобы в RepoModule был доступен instance MainActivity?
источник

SV

Sviat Volkov in Dagger 2
в репо модуле доступен репо фрагмент, из него можно взять активити
источник

M

Magomed in Dagger 2
Sviat Volkov
в репо модуле доступен репо фрагмент, из него можно взять активити
он там будет доступен до onAttach?
источник

АГ

Александр Горшков in Dagger 2
Sviat Volkov
в репо модуле доступен репо фрагмент, из него можно взять активити
Нет, не доступен. Надо ли написать @Binds где-то?
источник

VM

Vadim Morozov in Dagger 2
K
источник

АГ

Александр Горшков in Dagger 2
Sviat Volkov
в репо модуле доступен репо фрагмент, из него можно взять активити
Или же как правильно сделать
RepoModule
?
Сейчас у меня вот так примерно:
@Module
class RepoModule {
   
   @Provides
   fun provideRepoInstance(activity: MainActivity) : RepoInstance {
       return RepoInstance(activity)
   }
}
источник

M

Magomed in Dagger 2
Magomed
он там будет доступен до onAttach?
Там инджектится в методе onAttach как раз, так что все норм будет
источник

M

Magomed in Dagger 2
@Override
 public void onAttach(Context context) {
   AndroidInjection.inject(this);
   super.onAttach(context);
 }
источник

M

Magomed in Dagger 2
а не)
источник