Size: a a a

2020 March 09

DZ

Dmitry Zhgun in Dagger 2
Ilya Gulya
Да, нужно
Сейчас попробую и отпишусь, заранее спасибо!
источник

DZ

Dmitry Zhgun in Dagger 2
Все равно не получается.
@Module
public abstract class NetworkModule {

   @Binds
   abstract Context context(Context context);
}
}

@Component(modules = {NetworkModule.class})
public interface NetworkComponent {

   void inject(AbstractApiClient abstractApiClient);

   @Component.Builder
   interface Builder {

       NetworkComponent build();
   }
}

Ругается на циклическую зависимость
источник

DZ

Dmitry Zhgun in Dagger 2
Оно и понятно
это  из-за abstract Context context(Context context);
источник

DZ

Dmitry Zhgun in Dagger 2
На всякий: В AbstractApiClient
  @Inject AppPreferencesHandler preferences;
   @Inject Context context;
источник
2020 March 10

DZ

Dmitry Zhgun in Dagger 2
Сделал так:
1) В network модуле создал класс NetworkComponentHelper.
public class NetworkComponentHelper {

   public static NetworkComponent getNetworkComponent() {
       return networkComponent;
   }

   public static void setNetworkComponent(NetworkComponent networkComponent) {
       NetworkComponentHelper.networkComponent = networkComponent;
   }

   private static NetworkComponent networkComponent;
}
источник

DZ

Dmitry Zhgun in Dagger 2
Далее, в App классе создал компонент с контекстом:
@Component(modules = {NetworkModule.class, CoreModule.class})
public interface NetworkComponent {

   void inject(AbstractApiClient abstractApiClient);

   @Component.Builder
   interface Builder {

       @BindsInstance
       Builder withContext(Context context);

       NetworkComponent build();
   }
}

....
App-класс:
NetworkComponentHelper.setNetworkComponent(DaggerNetworkComponent.builder()
               .withContext(panelApp)
               .build());
источник

DZ

Dmitry Zhgun in Dagger 2
И заюзал в моем классе через Helper:
NetworkComponentHelper.getNetworkComponent().inject(this);
источник

DZ

Dmitry Zhgun in Dagger 2
Поправьте, если чего нужно поменять, вроде работает
источник

DZ

Dmitry Zhgun in Dagger 2
И забаньте меня, если засоряю чат своим говнокодом :)
источник

SV

Sviat Volkov in Dagger 2
лучше кидай гисты, так и спама нет и читабельнее
источник

DZ

Dmitry Zhgun in Dagger 2
Sviat Volkov
лучше кидай гисты, так и спама нет и читабельнее
Хорошо, приму к сведению
источник

SY

Sergey Yzenev in Dagger 2
Всем привет! Правильно ли я понимаю что static provide метод отличается от non-static только тем что он дергается компонентом напрямую, минуя модуль? Это все?
источник

А

Андрей in Dagger 2
Если все методы в модуле статик, то модуль не создаётся тогда, иначе создаётся, если есть там хотя бы 1 обычный метод.
источник

SY

Sergey Yzenev in Dagger 2
Андрей
Если все методы в модуле статик, то модуль не создаётся тогда, иначе создаётся, если есть там хотя бы 1 обычный метод.
Получается я могу делать все через static, для ввода интерфейса использовать @Bind, а вместо конструктора модуля использовать @BindInstance
источник

А

Андрей in Dagger 2
Sergey Yzenev
Получается я могу делать все через static, для ввода интерфейса использовать @Bind, а вместо конструктора модуля использовать @BindInstance
В принципе да, если твои классы спроектированы, как надо.
источник

SY

Sergey Yzenev in Dagger 2
Андрей
В принципе да, если твои классы спроектированы, как надо.
Спасибо
источник
2020 March 12

K

Kirill in Dagger 2
Подскажите по кастомному скопу, что-то не могу понять.
Создаю фрагмент AllTasksFragment в нем инициализирую FilterComponent компонент с своим скоупом.
во вью моделе  AllTasksViewMode в классе Filter делаю какое-то изменение над переменно s
открываю другой фрагмент,  FilterTicketFragment
там во вью моделе FilterTicketViewModel смотрю Filter и он пустой. что-то не могу понять,где я туплю...
https://gist.github.com/kair32/245d9467fca7a5f4bb0ef8e5b8288578
источник
2020 March 13

I

Igor in Dagger 2
Ребят есть инжект в конструктор, но даггер упорно требует провайд что может быть не так?
источник

ВС

Виталий Сычёв in Dagger 2
Igor
Ребят есть инжект в конструктор, но даггер упорно требует провайд что может быть не так?
Посмотрите вы зависимость точно провайдите или ещё как вариант  скоуп может не совпадать)
источник

I

Igor in Dagger 2
Виталий Сычёв
Посмотрите вы зависимость точно провайдите или ещё как вариант  скоуп может не совпадать)
Так при инжекте в конструктор провайд не нужен фактически цепочка презентер(провайд)-интерактор(конструктор)-репозиторий(конструктор()-api(провайд)
источник