Size: a a a

Android Developers

2021 January 15

L

Leonid in Android Developers
SE
Здравствуйте
У меня при компиляции проекта показывает так. Я делаю inject LockManager в AuthManager и на оборот. Как можно решить данную проблему?


[Dagger/DependencyCycle] Found a dependency cycle:
public interface ApplicationComponent {
      ^
     com.example.data.AuthManager is injected at
         com.example.di.ApplicationModule.provideLockManager(�, authManager)
     com.example.data.LockManager is injected at
         com.example.data.AuthManager.mLockManager
     com.example.data.AuthManager is requested at
         com.example.di.ApplicationComponent.authManager()
Может быть, сделать объект, который содержит оба этих класса? Вот его и инжектить куда попало, чтобы не было circular reference.
источник

S

SE in Android Developers
Leonid
Может быть, сделать объект, который содержит оба этих класса? Вот его и инжектить куда попало, чтобы не было circular reference.
Как альтернатива у меня есть решение. Я не буду inject LockManager в AuthManager. Мне LockManager в AuthManager нужен для очистки данных при logout. Место этого я просто очищу его на примую через PreferencesHelper. Я просто хотел узнать можно ли как-то такие случаи решить ?
источник

F

Fidel in Android Developers
Denis
там вроде везде стоит @+id
спасибо
источник

F

Fidel in Android Developers
Kostya Balyaba
@+id попробуй у всех вью
спасибо
источник

L

Leonid in Android Developers
Fidel
спасибо
@+id чтобы задать новый id,
@id чтобы ссылаться на существующие (например в ConstraintLayout)
источник

L

Leonid in Android Developers
SE
Как альтернатива у меня есть решение. Я не буду inject LockManager в AuthManager. Мне LockManager в AuthManager нужен для очистки данных при logout. Место этого я просто очищу его на примую через PreferencesHelper. Я просто хотел узнать можно ли как-то такие случаи решить ?
Не могу подсказать, я пока обхожусь без даггеров.
источник

S

SE in Android Developers
Leonid
Не могу подсказать, я пока обхожусь без даггеров.
ОК, спасибо
источник

СП

Сергей П. in Android Developers
SE
Здравствуйте
У меня при компиляции проекта показывает так. Я делаю inject LockManager в AuthManager и на оборот. Как можно решить данную проблему?


[Dagger/DependencyCycle] Found a dependency cycle:
public interface ApplicationComponent {
      ^
     com.example.data.AuthManager is injected at
         com.example.di.ApplicationModule.provideLockManager(�, authManager)
     com.example.data.LockManager is injected at
         com.example.data.AuthManager.mLockManager
     com.example.data.AuthManager is requested at
         com.example.di.ApplicationComponent.authManager()
Обходиться без даггеров к примеру? Даггер не нужен (с)
источник

S

Sergey in Android Developers
SE
Здравствуйте
У меня при компиляции проекта показывает так. Я делаю inject LockManager в AuthManager и на оборот. Как можно решить данную проблему?


[Dagger/DependencyCycle] Found a dependency cycle:
public interface ApplicationComponent {
      ^
     com.example.data.AuthManager is injected at
         com.example.di.ApplicationModule.provideLockManager(�, authManager)
     com.example.data.LockManager is injected at
         com.example.data.AuthManager.mLockManager
     com.example.data.AuthManager is requested at
         com.example.di.ApplicationComponent.authManager()
Даже без дагера не очень идея. А то что он ругается понятно и логично.
источник

L

Leonid in Android Developers
Сергей П.
Обходиться без даггеров к примеру? Даггер не нужен (с)
Может быть, я не умею готовить даггеры, но у меня ни разу не возникло необходимости что-то куда-то инжектить с помощью подобных библиотек.
источник

BS

Bohdan Shpanchuk in Android Developers
Та ну, для начала hilt можно легко усвоить
источник

S

Sergey in Android Developers
SE
Как альтернатива у меня есть решение. Я не буду inject LockManager в AuthManager. Мне LockManager в AuthManager нужен для очистки данных при logout. Место этого я просто очищу его на примую через PreferencesHelper. Я просто хотел узнать можно ли как-то такие случаи решить ?
Я так понял аутх менеджер сообщает о логауте и другой менеджер чистит базы например. То зачем инектить аутх в логаут менеджер?
источник

S

Sergey in Android Developers
Какая-то дед лок зависимость просто.
источник

S

SE in Android Developers
Sergey
Я так понял аутх менеджер сообщает о логауте и другой менеджер чистит базы например. То зачем инектить аутх в логаут менеджер?
LockManager есть свои методы разные в одном из них он узнает через AuthManager авторизован ли пользователь.  Так же у AuthManager есть разные методы в одном из них он вызывает clear у LockManager.
источник

M

MadMaxPain in Android Developers
коллеги, а есть у кого-нибудь пример wrapper'а поверх существующего адаптера для RecyclerView который подгружает нативную AdMob-рекламу ?
источник

S

Sergey in Android Developers
SE
LockManager есть свои методы разные в одном из них он узнает через AuthManager авторизован ли пользователь.  Так же у AuthManager есть разные методы в одном из них он вызывает clear у LockManager.
А аутх разве не должен сам знать это (судя по его названию). А лок менеджер исполнитель скорее команды на очистку. Ну я просто вижу, что локманаджер слишком много умеет, а аутх не умеет то, что должен. Но эт моё имхо.
источник

L

Leonid in Android Developers
Bohdan Shpanchuk
Та ну, для начала hilt можно легко усвоить
Можно пример где это полезно применять?
источник

S

SE in Android Developers
Sergey
А аутх разве не должен сам знать это (судя по его названию). А лок менеджер исполнитель скорее команды на очистку. Ну я просто вижу, что локманаджер слишком много умеет, а аутх не умеет то, что должен. Но эт моё имхо.
Ну как по мне LockManager исполнитель. AuthManager говорит при logout LockManager что нужно очистить данные.
источник

S

Sergey in Android Developers
SE
Ну как по мне LockManager исполнитель. AuthManager говорит при logout LockManager что нужно очистить данные.
Да. Тогда зачем ему аутх как зависимость. Пришла команда на логаут, чистим и выходим. Это не его задача там чёт проверять его задача очистить.
источник

S

SE in Android Developers
Sergey
Да. Тогда зачем ему аутх как зависимость. Пришла команда на логаут, чистим и выходим. Это не его задача там чёт проверять его задача очистить.
LockManager есть метод isShowLockScreen в котором есть условие, что есть ли у пользователя pin code или pattern и авторизован ли он. Именно авторизован ли пользователь берётся через AuthManager
источник