Size: a a a

2019 June 17

D

Dmitry in Dagger 2
Подскажите как заинжектить в класс при тестировании? В тестируемом классе инжекчу так: App.getComponent().inject().Создал отдельный тестовый компонент,  создал модуль того, что инжекчу, но в самом классе метод inject через статический метод класса Application. Как быть?)
источник

N

Nikolay in Dagger 2
Dmitry
Подскажите как заинжектить в класс при тестировании? В тестируемом классе инжекчу так: App.getComponent().inject().Создал отдельный тестовый компонент,  создал модуль того, что инжекчу, но в самом классе метод inject через статический метод класса Application. Как быть?)
Выше уже обсуждали эту проблему. Поищи ссылки, я скидывал
источник

N

Nikolay in Dagger 2
Alex Holmi
Всем привет, помогите пожалуйста разобраться.
есть класс, который в момент инициализации создает канал и устанавливает повторяющееся уведомление
class NotificationManager @Inject constructor(
   private val notificationManager: NotificationManager,
   private val alarmManager: AlarmManager,
   private val application: Application) {

   init { ... }
}
хочу этот класс проинициализировать при помощи дагера, чтобы он сам подтянул туда нужные зависимости
не понимаю как заинжектить его в mainActivity чтобы инстанс класса создавался при старте приложения
спасибо
Не очень понял в чем проблема. Ты же уже написал @Inject возле конструктора. Теперь у себя в активити сделай инджект в переменную
источник

AP

Anton Potekhin in Dagger 2
Вопрос если я @inject возле конструктора напишу. Это будет Singleton ? или же обязательно добавлять @Singleton возле @Inject  ?
источник

СТ

Сергей Троян in Dagger 2
обязательно  @Singleton или подобный кастомный
источник

СТ

Сергей Троян in Dagger 2
это будет 1 к 1 для одно инстанса компонента, если компонет создать 2 раза,  то будет 2 инстанса

это при условии что класс куда-то инжектится, без этого инстанс вообще не создатся, потому что никому "не нужен"
источник
2019 June 19

I

Igor in Dagger 2
Ребят если я в модуле делаю                                                             @Provides
   @Singleton
   fun provideRepository(a: Cat, b: Dog)  = Repository(a,b)
, а затем   в классе class Repository constructor(a: Cat, b:Dog){} откуда следует брать a и b? То есть должен ли я их передавать в метод provideRepository?
источник

SV

Sergey Vasilchenko in Dagger 2
повесить @Inject на конструкторы Cat и Dog
источник

SV

Sergey Vasilchenko in Dagger 2
хотя можно начать с того, что если Cat, Dog и Repository твои классы, модуль делать не нужно)
источник

SV

Sviat Volkov in Dagger 2
Не понял вопроса
источник

I

Igor in Dagger 2
Sergey Vasilchenko
повесить @Inject на конструкторы Cat и Dog
так чтобы ты их мог инжектить они тоже должны провайжится?
источник

I

Igor in Dagger 2
Sviat Volkov
Не понял вопроса
вопрос в том, что я не вижу провайда для Cat и Dog  они же не берутся с воздуха
источник

SV

Sergey Vasilchenko in Dagger 2
Igor
так чтобы ты их мог инжектить они тоже должны провайжится?
провайдиться или иметь конструктор с аннотацией @Inject, провайдить в модулях вообще все подряд не обязательно
источник

SV

Sviat Volkov in Dagger 2
Igor
вопрос в том, что я не вижу провайда для Cat и Dog  они же не берутся с воздуха
Для всех передаваемых объектов должен быть либо провайд метод либо инжект конструктор
источник

I

Igor in Dagger 2
Sergey Vasilchenko
провайдиться или иметь конструктор с аннотацией @Inject, провайдить в модулях вообще все подряд не обязательно
так если конструктор с аннотацией инжект то где даггер возьмет Cat и Dog? ведь ему нужны эксземпляры классов, а их мы должны сделать в провайдере насколько я помню или передать
источник

I

Igor in Dagger 2
Sviat Volkov
Для всех передаваемых объектов должен быть либо провайд метод либо инжект конструктор
то есть должно быть что-то вроде class Repository @inject constructor(a: Cat, b: Dog) верно?
источник

SV

Sviat Volkov in Dagger 2
Да, тогда можно провайд метод не писать, но у Cat Dog тоже должны быть либо инжект конструктор либо провайд методы
источник

I

Igor in Dagger 2
Sviat Volkov
Да, тогда можно провайд метод не писать, но у Cat Dog тоже должны быть либо инжект конструктор либо провайд методы
ок, спасибо
источник
2019 June 20

СА

Семен Александров in Dagger 2
Igor
ок, спасибо
Если над конструктором стоит @Inject, то у даггера появляется возможность создать и использовать экземпляр класса. Когда экземпляр класса понадобится, даггер получает необходимые значения параметров(из графа зависимостей) и вызывает конструктор. Ну и соответственно экземпляр класса внедряется в граф зависимостей
источник

I

Igor in Dagger 2
Семен Александров
Если над конструктором стоит @Inject, то у даггера появляется возможность создать и использовать экземпляр класса. Когда экземпляр класса понадобится, даггер получает необходимые значения параметров(из графа зависимостей) и вызывает конструктор. Ну и соответственно экземпляр класса внедряется в граф зависимостей
спасибо, разобрался
источник