LoadingView из нескольких методов

137
19 февраля 2021, 16:50

Использую Moxy для реализации MVP.

Первый вопрос: Такая ситуация. Есть активити(вью) к которой привязываются 2 презентера.

Есть два презентера и в обоих из них выполняется запрос на сервер(в один момент), в этот момент оба презентера отправляют во вью команду показать LoadingView и соответственно при завершении отправляют команду скрыть LoadingView.

Во вью, LoadingView один для всех.

Коллизие в том что: первый презентер может отправить команду на закрытие, в тот момент пока второй презентер все ещё получает данные. Логичнее скрывать LoadingView после выполнения запросов в обоих презентерах.

Может есть best practices как решить этот вопрос?

Второй вопрос: Мой LoadingView это cancelable Dialog с прозрачным темным фоном. При вызове show, я передаю туда disposable(rxJava) и если пользователь закрывает этот LoadingView то происходит disposable.dispose() т.к. операция далее не актуальна. Практикуете такое? Как подружить такое с первым вопросом?)

Answer 1
  1. Передаете событие завершения загрузки из одного презентера в другой через вьюху, потому что в ней у вас есть ссылки на презентеры. В презентере проверяете, если запрос текущего презентера еще идёт, то оставляете загрузочный диалог, если нет, то убираете. Такой же механизм надо сделать и в другом презентере. Так можно сделать, если от двух презентеров избавиться невозможно, но если есть возможность перевести логику отображения вью в один презентер лучше сделать так.
  2. Такое не практикуется. Disposable это объект презентера и вьюхе вообще не нужно знать о том, как вы делаете свои запросы в сеть, а тем более управлять их жизненным циклом. Поэтому ивент, когда пользователь нажимает отмену нужно передавать в презентер и там делать dispose или clear

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

READ ALSO
Оценить сложность функции

Оценить сложность функции

Есть функция которая перебирает в цикле входящий массив строк

124
Удалить символы в начале и конце строки

Удалить символы в начале и конце строки

Мне нужно с помощью регулярки образать все нули спереди, и один ноль в концеНаписал вот такую регулярку, но она работает не правильно str

118
Получить элемент объекта React

Получить элемент объекта React

Получаю объект с сервера и записываю его в состояние, но когда выбираю значение его элемента - Cannot read property 'id' of undefinedОбъект выглядит вот так:

85
push не работает на сайте с телефона

push не работает на сайте с телефона

я пыталась открыть страницу на Android, но push-уведомление работает только на ПК, а на телефоне - нет, в чем может быть проблема? Как настроить push, чтобы...

121