Size: a a a

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

2018 October 29

EK

Evgeny Kursakov in Moxy – MVP библиотека под Android
У родителя вроде не надо @ InjectPresenter, даже если там есть что-то
источник

D

Denis in Moxy – MVP библиотека под Android
А в конкретное актвиити уже инжектишь нужный презентер, который наследуется от базового
источник

AK

Aleksei Korshun in Moxy – MVP библиотека под Android
Denis
Базовый класс обычно абстрактный
+
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
Serhii Tereshchenko
В общем теперь когда я указываю @InjectPresenter в наследнике, у меня @InjectPresenter не отрабатывает в родителе и при обращении падает с NPE.
А если убрать проблему с модулями, то кто то вообще делал так? Это нормальный кейс для Moxy, когда есть презентер и в родителе и так же отдельный создается в наследнике?
Последний раз когда мы такое делали, приходилось делать абстрактный метод getPresenter() чтоб получать экземпляр нужного презентера в родителе. И реализовывать его у детей.
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
Возможно сейчас что-то поменялось.
источник

АФ

Алексей Федоров in Moxy – MVP библиотека под Android
Всем добрый вечер. Кто нибудь из вас использовал livedata в moxy?
источник

АД

Андрей Данилов in Moxy – MVP библиотека под Android
Алексей Федоров
Всем добрый вечер. Кто нибудь из вас использовал livedata в moxy?
ну использовать-то можно, но зачем?
источник

АД

Андрей Данилов in Moxy – MVP библиотека под Android
и в чем проблема?
источник

АФ

Алексей Федоров in Moxy – MVP библиотека под Android
Есть такая ситуация. В моем приложении я вывожу список телефонных звонков. Я написал класс  ContentResolverHelper который общается с callog и через цепочку репозиторий - интерактор - презентер список выводится на экран. Все работает корректно, но я хотел бы чтобы список обновлялся в режиме реального времени. Например, мне позвонили, я сбросил и на экране появился этот сброшенный звонок
источник

АФ

Алексей Федоров in Moxy – MVP библиотека под Android
Сейчас список звонков передаётся в адаптер рисайклервью в методе onstart и поэтому все обновления возникают только после сворачивания приложения
источник

АД

Андрей Данилов in Moxy – MVP библиотека под Android
Алексей Федоров
Есть такая ситуация. В моем приложении я вывожу список телефонных звонков. Я написал класс  ContentResolverHelper который общается с callog и через цепочку репозиторий - интерактор - презентер список выводится на экран. Все работает корректно, но я хотел бы чтобы список обновлялся в режиме реального времени. Например, мне позвонили, я сбросил и на экране появился этот сброшенный звонок
ну тогда да либо лайвдату либо локальный броудкаст ресивер, либо какой-нибудь rxbus
источник
2018 October 30

EK

Eugeniy Kamensky in Moxy – MVP библиотека под Android
Алексей Федоров
Сейчас список звонков передаётся в адаптер рисайклервью в методе onstart и поэтому все обновления возникают только после сворачивания приложения
Ну, можно же перенести в onResume()?
источник
2018 October 31

MM

Maxim Motorniy in Moxy – MVP библиотека под Android
Алексей Федоров
Есть такая ситуация. В моем приложении я вывожу список телефонных звонков. Я написал класс  ContentResolverHelper который общается с callog и через цепочку репозиторий - интерактор - презентер список выводится на экран. Все работает корректно, но я хотел бы чтобы список обновлялся в режиме реального времени. Например, мне позвонили, я сбросил и на экране появился этот сброшенный звонок
Есть два варианта решения этой проблемы. Если источник данных позволяет получать обновления, то это то место, где их надо повторно отправлять на экран. Если нет, то ставишь таймер, раз в 5сек проверять обновы и добавлять их во вью.
Второй вариант очень нежелателен, но возможен. Для первого нужен такой функционал в источнике данных. В случае со списком телефонных звонков надо поискать нету ли local broadcast receiver ивента по которому можно обновлять список
источник

ML

Misha Lakatkin in Moxy – MVP библиотека под Android
источник

ML

Misha Lakatkin in Moxy – MVP библиотека под Android
источник

ML

Misha Lakatkin in Moxy – MVP библиотека под Android
Привет всем. Недавно начал использовать эту библиотеку.
Возникла необходимость реализовать следующую схему:
Есть главная Activity (View) У нее Presenter с type= LOCAL.
Есть несколько фрагментов(View) у каждого Presenter с type= LOCAL.
На Activity Они выставляются через replace.Соответственно presenter создается каждый раз.
Мне нужно чтобы ЖЦ презентеров фрагментов соответствовал ЖЦ Activity.
Какие пути я вижу
1.Делать  презентеры фрагментов глобальными.
Тогда возникает ситуация, когда после смерти главной Activity презентеры фрагментов не сбрасываются.
2.Делать  презентеры фрагментов  WEAK. Тогда нужно делать InjectPresenter в Activity Не очень хочется так делать.
3. Главный presenter реализует интерфейс IChildPresenterProvider. В нем описаны методы для получения Presenter'в для фрагментов.
У фрагментов есть метод setPresenterProvider. После создания фрагмента а Activity ему передается ссылка на реализацию IChildPresenterProvider.
Внутри фрагметов метод с аннотацией @ProvidePresenter, который дергает метод IChildPresenterProvider'а и "вытаскивает" презентер для фрагмента из главного презентера.
Пожалуйста поделитесь опытом, как лучше реализовать подобный кейс?
И еще вопрос Возможно ли повесить аннотацию InjectPresenter на интерфейс,а не на конкретный класс Presenter'а?
источник

MM

Maxim Motorniy in Moxy – MVP библиотека под Android
У меня только один вопрос. Зачем?
источник

ML

Misha Lakatkin in Moxy – MVP библиотека под Android
Maxim Motorniy
У меня только один вопрос. Зачем?
А что не так, есть форма с Bottom Navigation View  На ней фрагменты, каждый фрагмент это страница с своей логикой и запросами. При переключении табов, презентеры пересоздаются и запросы летят каждый раз.
Предлогаете разрулить это на уровне модели?
источник

VL

Vasily Laushkin in Moxy – MVP библиотека под Android
А почему они пересоздаются?
источник

ML

Misha Lakatkin in Moxy – MVP библиотека под Android
Скорее всего из-за использования
fragmentManager.popBackStackImmediate(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
Вместе с методом replace.
источник