Size: a a a

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

2020 March 25

АЕ

Алексей Ершов in Moxy – MVP библиотека под Android
implementation 'com.arello-mobile:moxy:1.1.1' это древняя древность, старая версия библиотеки, которая не поддерживается
источник

АЕ

Алексей Ершов in Moxy – MVP библиотека под Android
Заходите сюда https://github.com/moxy-community/Moxy и берите новую)
источник

MM

Mikhail Mustakimov in Moxy – MVP библиотека под Android
Alexey
Почему может возникать NPE, при обращении к презентеру в активити? Если сделал InjectPresenter
Либо annotation processor/kapt не добавили
источник

АЕ

Алексей Ершов in Moxy – MVP библиотека под Android
обновите мокси до актуальной версии первым делом)
источник

A

Alexey in Moxy – MVP библиотека под Android
Алексей Ершов
обновите мокси до актуальной версии первым делом)
теперь ругается на отсутствие StateStrategyType у view, хотя я их не использую
источник

АЕ

Алексей Ершов in Moxy – MVP библиотека под Android
теперь самое время прочитать актуальную документацию)
https://github.com/moxy-community/Moxy/wiki/Migration-Guide-(1.x.x-to-2.x.x)
https://github.com/moxy-community/Moxy/wiki/Getting-started
источник

АЕ

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

A

Alexey in Moxy – MVP библиотека под Android
Алексей Ершов
стратегии теперь надо или явно указывать для каждой View, или добавить флаги компиляции, чтобы включить стратегию по умолчанию
так и думал, спасибо
источник
2020 March 26

A

Alexey in Moxy – MVP библиотека под Android
Подскажите, я в презентере получаю и десериализую данные в лист объектов, которые надо записать в Room, но для его инициализации нужен context, что сделать в данной ситуации?
источник

IG

Ilya Gulya in Moxy – MVP библиотека под Android
Alexey
Подскажите, я в презентере получаю и десериализую данные в лист объектов, которые надо записать в Room, но для его инициализации нужен context, что сделать в данной ситуации?
источник

A

Alexey in Moxy – MVP библиотека под Android
Ок
источник
2020 March 31

PP

Parabol Parabola in Moxy – MVP библиотека под Android
Parabol Parabola
всем привет. Раз в несколько запусков приложения вылетает NullPointerException.
Класс AddToEndSingleStrategy:
public <View extends MvpView> void beforeApply(final List<ViewCommand<View>> currentState,
       final ViewCommand<View> incomingCommand) {
       Iterator<ViewCommand<View>> iterator = currentState.iterator();

       while (iterator.hasNext()) {
           ViewCommand<View> entry = iterator.next();

           if (entry.getClass() == incomingCommand.getClass()) {
               iterator.remove();
               break;
           }
       }

       currentState.add(incomingCommand);
   }


Вылетает из-за entry.getClass(), якобы entry == null
Не знаю насколько тут верное решение, но мне оно на данный момент помогло: создал кастомный класс, копию класса AddToEndSingleStrategy, с той лишь разницей, что вместо
if (entry.getClass() == incomingCommand.getClass()) 
вписал
if (entry == null || entry.getClass() == incomingCommand.getClass())

Ловил дебагером null в переменной entry, null также выходит как и раньше но вылеты прекратились и вроде бы во фрагменте отображается всё правильно.

Ошибка заключается в том, что по какой-то неведомой причине в поле ViewCommands.state попадает элемент null т.е. при моём запуске приложения в ViewCommands.state лежит два элемента: null и элемент действительно переданный через вызов getViewState().refreshAlbums(),
Во ViewState null через Presenter точно не передаётся
источник
2020 April 05

SS

Stas Stahma in Moxy – MVP библиотека под Android
Добрый вечер. Подскажите, пожалуйста, почему презентер не инжектится у Мокси, создал MvpBottomSheetDialogFragment, прокинул методы жц в мвпДелегат, то при оббращении к презентеру - нулпоинтер.
public class MvpBottomSheetDialogFragment extends BottomSheetDialogFragment {

   private boolean mIsStateSaved;
   private MvpDelegate<? extends MvpBottomSheetDialogFragment> mMvpDelegate;

   public MvpBottomSheetDialogFragment() {
       
   }

   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       getMvpDelegate().onCreate(savedInstanceState);
   }

   public void onResume() {
       super.onResume();
       mIsStateSaved = false;
       getMvpDelegate().onAttach();
   }

   public void onSaveInstanceState(Bundle outState) {
       super.onSaveInstanceState(outState);
       mIsStateSaved = true;
       getMvpDelegate().onSaveInstanceState(outState);
       getMvpDelegate().onDetach();
   }

   @Override
   public void onStop() {
       super.onStop();
       getMvpDelegate().onDetach();
   }

   @Override
   public void onDestroyView() {
       super.onDestroyView();
       getMvpDelegate().onDetach();
       getMvpDelegate().onDestroyView();
   }

   @Override
   public void onDestroy() {
       super.onDestroy();
       if (getActivity().isFinishing()) {
           getMvpDelegate().onDestroy();
           return;
       }

       if (mIsStateSaved) {
           mIsStateSaved = false;
           return;
       }

       boolean anyParentIsRemoving = false;

           Fragment parent = getParentFragment();
           while (!anyParentIsRemoving && parent != null) {
               anyParentIsRemoving = parent.isRemoving();
               parent = parent.getParentFragment();
           }


       if (isRemoving() || anyParentIsRemoving) {
           getMvpDelegate().onDestroy();
       }
   }

   public MvpDelegate getMvpDelegate() {
       if (mMvpDelegate == null) {
           mMvpDelegate = new MvpDelegate<>(this);
       }
       return mMvpDelegate;
   }
}
источник

VS

Volodymyr Stelmashchuk in Moxy – MVP библиотека под Android
Moxy version ?
источник

SS

Stas Stahma in Moxy – MVP библиотека под Android
1.5.3
источник

VS

Volodymyr Stelmashchuk in Moxy – MVP библиотека под Android
Alexander Sitnikov
Вышла новая версия Moxy 2.1.0! Основные изменения:
- Добавлены strategy alias для стратегий без параметров. Вместо @StateStrategyType(OneExecutionStateStrategy::class) теперь можно писать @OneExecution
- @InjectViewState теперь опциональный
- Добавлен CoroutineScope экстеншен для презентера
- Изменён алгоритм назначения стратегий при наследовании view интерфейсов
С полным списком изменений можно ознакомиться здесь: https://github.com/moxy-community/Moxy/blob/develop/CHANGELOG.md
^
источник

SS

Stas Stahma in Moxy – MVP библиотека под Android
и там есть вшитый mvpBottomSheet?
источник

VS

Volodymyr Stelmashchuk in Moxy – MVP библиотека под Android
да в module, moxy-material
источник

VS

Volodymyr Stelmashchuk in Moxy – MVP библиотека под Android
внимательно прочитайте ReamMe
источник

SS

Stas Stahma in Moxy – MVP библиотека под Android
там andoridX, в моем случае мне нужен support, В любом случае не понимаю почему мой презентер не инжектится
источник