Size: a a a

Moxy – MVP библиотека под Android

2018 July 11

A

Amir in Moxy – MVP библиотека под Android
Алексей Ершов
Что значит "использовать теги из одного презентера в другом"? Чего именно вы хотите достичь? Обычно один фрагмент - один презентер, и теги не нужны.
Постепенно проваливаюсь по спискам внутрь. Список = отдельный фрагмент. При этом при переходе нужно передавать параметры нажатого элемента. ProvidePresenterTag как я понял помогает динамически добавлять параметры в презентер. И вот я не понял у всех фрагментов должен быть один презентер, или как?
источник

АЕ

Алексей Ершов in Moxy – MVP библиотека под Android
Вы неправильно поняли) Обычно, у вас на каждый фрагмент есть свой презентер. Аннотация @ProvidePresenter вам нужна, если ваш презентер требует параметров в конструкторе. Вы делаете метод, помечаете его этой аннотацией, и создаёте презентер как надо. Всё)
источник

A

Amir in Moxy – MVP библиотека под Android
Алексей Ершов
Вы неправильно поняли) Обычно, у вас на каждый фрагмент есть свой презентер. Аннотация @ProvidePresenter вам нужна, если ваш презентер требует параметров в конструкторе. Вы делаете метод, помечаете его этой аннотацией, и создаёте презентер как надо. Всё)
Ну если к примеру я хочу узнать id нажатого элемента из 1го фрагмента, при этом находясь в 4м. То для этого мне нужно хранить этот id во 2м и 3м фрагменте, чтобы он попал в 4й?
источник

A

Amir in Moxy – MVP библиотека под Android
При этом передавая этот стек id в конструктор текущего фрагмента
источник

АЕ

Алексей Ершов in Moxy – MVP библиотека под Android
Можно прокидывать последовательно, но лучше хранить в какой-то общей модели данных, о которой знают все презентеры.
источник

A

Amir in Moxy – MVP библиотека под Android
мне казалось из описания это как раз моя проблема
источник

A

Amir in Moxy – MVP библиотека под Android
Sometimes you want to base the presenter tag on some rules. For example, you have an adapter. And you want to use personal presenter for each adapter item. There each presenter depends on some input data, like item id or somethings else. You can’t solve this issue via @InjectPresenter tag-argument, because you can’t set this argument dynamically.
источник

A

Amir in Moxy – MVP библиотека под Android
Solution
Moxy provide @ProvidePresenter and @ProvidePresenterTag annotations. You can apply these to methods. These allow you to generate tag dynamically and use custom presenter constructor.
источник

KD

Konstantin Dovnar in Moxy – MVP библиотека под Android
Amir
Solution
Moxy provide @ProvidePresenter and @ProvidePresenterTag annotations. You can apply these to methods. These allow you to generate tag dynamically and use custom presenter constructor.
Разработчики moxy разошлись со своими же планами.
Не верь доке на 100%, они на нее забили:)
источник

DK

Dmitry Konurov in Moxy – MVP библиотека под Android
Всем привет вообще дико нубский вопрос, плохо же LocationManager хранить в Presenter? Context может же утечь? или здесь нет ничего страшного?
источник

АЕ

Алексей Ершов in Moxy – MVP библиотека под Android
Если по Clean, то не надо так делать, это нарушение направления зависимостей. Вопрос, скорее, в https://t.me/Android_Architecture :)
источник

DK

Dmitry Konurov in Moxy – MVP библиотека под Android
да я не спрашиваю про архитектурное решение 😊 и понятно что это типо дата слой и т.д. и т.п. мне интересно утекет ли контекст при таких манипуляциях
источник

E

Eduard in Moxy – MVP библиотека под Android
как насчет WeakReference?
источник

DK

Dmitry Konurov in Moxy – MVP библиотека под Android
Eduard
как насчет WeakReference?
не плохая идея... но будет обидно если во время работы у меня вдруг умрет LocationManager и ссылка на него
источник

E

Eduard in Moxy – MVP библиотека под Android
ну если умрет ссылка значит что-то другое тоже скорее всего умерло, ну или в конце концов когда нужно, получать из контекста locationmanager, затем чистить, когда снова понадобится - снова брать
источник

DK

Dmitry Konurov in Moxy – MVP библиотека под Android
Eduard
ну если умрет ссылка значит что-то другое тоже скорее всего умерло, ну или в конце концов когда нужно, получать из контекста locationmanager, затем чистить, когда снова понадобится - снова брать
немного не понял 0_о
источник

E

Eduard in Moxy – MVP библиотека под Android
ну Context всегда же привязан к какому-то «контексту»: апп, активити, сервис и тд, пока «контекст» жив, можно у него напрямую брать Context, при этом самому отслеживать в каком состоянии находится активити, сервис или что там у вас
источник

E

Eduard in Moxy – MVP библиотека под Android
мой пример, при запуске активити мне нужна локация, я получаю из контекста activity LocationManager, делаю манипуляции, получаю локацию, чищу объект, параррельно при этом в перезнтере в onStop() его очищаю
источник

E

Eduard in Moxy – MVP библиотека под Android
все что требуется - следить самому за жизненным циклом объекта, не оставлять его просто так, передавая в конструктор например
источник

E

Eduard in Moxy – MVP библиотека под Android
ну и даггер кстати тоже помощник
источник