У меня есть три состояния:
sealed class MainState(val movieList: List<Movie>) {
class Loading(movies: List<Movie> = emptyList()) : MainState(movies)
class Success(movies: List<Movie>) : MainState(movies)
class Error(val throwable: Throwable, movies: List<Movie> = emptyList()) : MainState(movies)
}
Эти состояния заключены в MutableLiveData
и управляются ViewModel
:
class MovieListViewModel(private val movieRepo: MovieRepository) : ViewModel() {
val stateLiveData = MutableLiveData<MainState>()
.
.
}
Я хочу интегрировать запрос liveData с моим состоянием liveDate, чтобы при обновлении запроса liveData до movieList состояние liveData обновлялось до Success(movieList)
. Как я могу достичь этого?
Вот как выглядит мой живой запрос:
@Dao
interface MovieDAO {
@Query("SELECT * FROM Movie")
fun getAllMovies(): LiveData<List<Movie>>
}