так что я исходил из фона MVP ... Что я в основном пытаюсь сделать, так это запустить загрузку ViewView, как только мы начнем извлекать данные из Room (SQLite), остановить загрузку ViewView, если все прошло успешно, и все такоелогика должна быть обработана в моем ViewModel (пытаясь сохранить мой фрагмент чистым) для фрагмента.
Что я сделал сейчас, так это то, что у меня есть два LiveData:
- Мои фактические данные, которые поступают из БД
- Ливата для состояния фрагмента:
Вот что я имею в виду:
enum HomeState{
LOADING,
LIVE
}
private LiveData<List<SomeData>> someData;
private MutableLiveData<HomeState> homeState;
Я наблюдаю как в своем фрагменте, так и хочу, чтобы мои homeStateLiveData определяли, должен ли фрагмент отображать представление загрузки. Как вы, вероятно, видите, это не сработает, так как когда приходят новые данные, они сразу уходятфрагмент, и я не могу управлять логикой homeState из ViewModel