активити я вызываю условный vm.loadData(). Когда я это делаю, должен включиться условный прогресс-бар, который управляется простым ObservableBoolean и по завершении он должен убраться. Вопрос: управлять флагом изнутри вм или в активити вызывать что-то типа vm.beginWaiting() и потом vm.loadData()?
Load начинается - сигналим, что нужно включать прогресс. Load закончился - сигналим, что нужно выключать прогресс.
Это да. Вопрос в том, сигналить из активити или внутри вьюмодели этим управлять.
Если VM выполняет действие, то лучше, чтобы она и сигналы посылала через LiveData. Иначе как активити или кто угодно другой сможет вовремя узнать, когда операция завершена?
Ну, если подразумевается, что у меня есть какая-то лайв дата, на которую я подписан, я могу там вызвать что-то типа vm.stopWaiting(), но всё же склоняюсь к тому, чтобы управлять этим изнутри вм.
На мой взгляд, это лишние телодвижения с begin/end waiting. VM замечательно может обновлять свою LiveData в начале и конце операции без дополнительных просьб со стороны UI. Захочет UI слушать эту LiveData или нет - его личное дело.
Я тоже так думаю. Спасибо за советы, так или иначе. А спрашиваю потому, что в случае, где MVVM не тотальный, как у меня (не вся работа с данными происходит через вм), то может возникнуть необходимость прям явно вызвать / прервать у вм ожидание из активити. В этой связи, кстати, ещё вопрос есть.
Активити(вью) ничего не решает, а только исполняет
Обсуждают сегодня