Size: a a a

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

2020 April 06

SS

Stas Stahma in Moxy – MVP библиотека под Android
Нет, загугли dagger2 constructor injection
источник

SS

Stas Stahma in Moxy – MVP библиотека под Android
В общем не даггер это, все остальные десятки фрагментов у меня заинджекшены и работают
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
Stas Stahma
Нет, загугли dagger2 constructor injection
Я прекрасно знаю как работает Constructor Injection
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
И у тебя тут точно проблема в даггере
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
Поставь дебаггер в providePresenter
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
и убедись что презентер у тебя null
источник

SS

Stas Stahma in Moxy – MVP библиотека под Android
да, презентер null. Окей, если опустить даггер, мокси же должна создавать презентер сама, без даггера, если презентр на вход ничего не требует?
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
Stas Stahma
да, презентер null. Окей, если опустить даггер, мокси же должна создавать презентер сама, без даггера, если презентр на вход ничего не требует?
нет
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
ты же сделал метод providePresenter
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
она его и использует
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
если бы не было метода - попыталась бы
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
и упала бы
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
за не имением дефолтного конструктора
источник

SS

Stas Stahma in Moxy – MVP библиотека под Android
Да, точно. Не заинжектил даггером. Спасибо за помощь, а я винил Мокси
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
источник
2020 April 10

w

whoami in Moxy – MVP библиотека под Android
Добрый день!
Обнаружил интересный баг в своем приложении, использую moxy 1.0.13

Приложение MVP

В презенторе загружается список заказов из сети и передается во вью (в ресайклер),

// Презентер
final ISellerOrdersView view = getViewState();

view.showOrders(orderList);


// Вью
public void showOrders(List<Order> orders) {
adapter.addOrders(orders);
}


Запускаю, пролистываю в самый низ, подгружается вторая страница, вызывается второй раз из презентера showOrders

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

Поискав в проекте нашел сгенерированный класс ISellerOrdersView$$State
который содержал следующий метод
@Override
 public void showOrders(List<Order> orders) {
   ShowOrdersCommand showOrdersCommand = new ShowOrdersCommand(orders);
   mViewCommands.beforeApply(showOrdersCommand);

   if (hasNotView()) {
     return;
   }

   for (ISellerOrdersView view : mViews) {
     view.showOrders(orders);
   }

   mViewCommands.afterApply(showOrdersCommand);
 }


вопрос, как правильно настроить moxy, чтобы при нажатии назад, он не выполнял заново предудыщую команду?
источник

NI

Nikita Ilyasov in Moxy – MVP библиотека под Android
whoami
Добрый день!
Обнаружил интересный баг в своем приложении, использую moxy 1.0.13

Приложение MVP

В презенторе загружается список заказов из сети и передается во вью (в ресайклер),

// Презентер
final ISellerOrdersView view = getViewState();

view.showOrders(orderList);


// Вью
public void showOrders(List<Order> orders) {
adapter.addOrders(orders);
}


Запускаю, пролистываю в самый низ, подгружается вторая страница, вызывается второй раз из презентера showOrders

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

Поискав в проекте нашел сгенерированный класс ISellerOrdersView$$State
который содержал следующий метод
@Override
 public void showOrders(List<Order> orders) {
   ShowOrdersCommand showOrdersCommand = new ShowOrdersCommand(orders);
   mViewCommands.beforeApply(showOrdersCommand);

   if (hasNotView()) {
     return;
   }

   for (ISellerOrdersView view : mViews) {
     view.showOrders(orders);
   }

   mViewCommands.afterApply(showOrdersCommand);
 }


вопрос, как правильно настроить moxy, чтобы при нажатии назад, он не выполнял заново предудыщую команду?
привет, а какие у тебя стратегии во view?
источник

NI

Nikita Ilyasov in Moxy – MVP библиотека под Android
вообще мокси бы обновить, в шапке есть ссылка на последнюю версию
источник

w

whoami in Moxy – MVP библиотека под Android
Nikita Ilyasov
привет, а какие у тебя стратегии во view?
по умолчанию которая
AddToEndStrategy
источник

NI

Nikita Ilyasov in Moxy – MVP библиотека под Android
whoami
по умолчанию которая
AddToEndStrategy
ну вот поэтому она и повторяется
почитай вот тут подробнее и выбери подходящую)
https://habr.com/ru/company/redmadrobot/blog/325816/
источник