169 похожих чатов

Здравствуйте У меня при компиляции проекта показывает так. Я делаю

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()

17 ответов

18 просмотров

Может быть, сделать объект, который содержит оба этих класса? Вот его и инжектить куда попало, чтобы не было circular reference.

SE- Автор вопроса

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

Не могу подсказать, я пока обхожусь без даггеров.

SE- Автор вопроса

ОК, спасибо

Обходиться без даггеров к примеру? Даггер не нужен (с)

Даже без дагера не очень идея. А то что он ругается понятно и логично.

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

Я так понял аутх менеджер сообщает о логауте и другой менеджер чистит базы например. То зачем инектить аутх в логаут менеджер?

SE- Автор вопроса

LockManager есть свои методы разные в одном из них он узнает через AuthManager авторизован ли пользователь. Так же у AuthManager есть разные методы в одном из них он вызывает clear у LockManager.

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

SE- Автор вопроса

Ну как по мне LockManager исполнитель. AuthManager говорит при logout LockManager что нужно очистить данные.

Да. Тогда зачем ему аутх как зависимость. Пришла команда на логаут, чистим и выходим. Это не его задача там чёт проверять его задача очистить.

SE- Автор вопроса

LockManager есть метод isShowLockScreen в котором есть условие, что есть ли у пользователя pin code или pattern и авторизован ли он. Именно авторизован ли пользователь берётся через AuthManager

Я же не отрицаю, что там есть такие методы я просто предложил мейби стоит подумать над зависимостями и над задачами которые решают классы.

SE- Автор вопроса

Sergey у меня как вариант есть вот это идея

Ну просто если по вопросу Di то получается даггер должен создать сущность прокинуть ей зависимость для которой требуется эта же сущность для которой... И тут мне кажется сразу становится видно, что взаимоотношения чёт как то не очень.

SE- Автор вопроса

Да, согласен. Надо подумать

Похожие вопросы

Обсуждают сегодня

Всем привет! Имеется функция: function IsValidChar(ch: UTF8Char): Boolean; var i: Integer; ValidChars: AnsiString; begin ValidChars := 'abcdefghijklmnopqrstuvwxyzABCDE...
Евгений
44
И никого не интересует какие пакеты кто использует. ((% Заходишь на сайт симфони и видишь поддержку Украины - по законам РФ это ж экстремизм. Только никто не отказывается от с...
Am Ambrion
11
лучше скажите, причём тут паскаль?
Alexey Kulakov
36
Чтобы перехватить все нажимания буков на форме, надо хук ставить? Пробовал на форме ОнКейДаун, оно ловит клаву если фокус не на компоненте с вводом текста
Serjone
15
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
7
Народ! Впервые клиенту пришло письмо от РКН, у вас, дескать, есть яндекс метрика, а нигде не написано, что вы ее юзаете. Никто не сталкивался?
Sasha Beep
14
Всем привет! вывожу на общей стр дочерние ресурсыв каждом ресурсе галерея, и первая фотка должна выводиться на общей [!DocLister? &prepare=photo !]
Alekso
12
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
7
А можно вопрос? Мне сегодня сказали что у меня функция (которая просто заполняет массив значениями) не правильная void Full(double * arr, int n) { for (int i = 0; i < n; i...
† C E †
7
Добрый вечер. Хочу чтобы у меня в классе поле было функцией, которая возвращает строку. Делаю так: interface ... TGetOutPath = function : String of object; ... protec...
Kirill Filippenok
12
Карта сайта