Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.mymov.ui.detail.viewmodel
- import androidx.lifecycle.LiveData
- import androidx.lifecycle.MutableLiveData
- import androidx.lifecycle.Transformations
- import androidx.lifecycle.ViewModel
- import com.example.mymov.data.source.local.entity.FilmEntity
- import com.example.mymov.data.source.local.entity.TvShowEntity
- import com.example.mymov.data.MovieRepository
- import com.example.mymov.vo.Resource
- class DetailViewModel(private val movieRepository: MovieRepository): ViewModel() {
- var movieId = MutableLiveData<Int>()
- fun setSelected(movieId: Int){
- this.movieId.value = movieId
- }
- var film: LiveData<Resource<FilmEntity>> = Transformations.switchMap(movieId) { mFilmId ->
- movieRepository.getFilmWithId(mFilmId)
- }
- var tv: LiveData<Resource<TvShowEntity>> = Transformations.switchMap(movieId) { mTvId ->
- movieRepository.getTvWithId(mTvId)
- }
- fun setFavorite() {
- val filmResource = film.value
- val tvResource = tv.value
- if (filmResource != null) {
- val filmWithData = filmResource.data
- if (filmWithData != null) {
- val newState = !filmWithData.favorite
- movieRepository.setFavoriteFilm(filmWithData, newState)
- }
- } else if (tvResource != null) {
- val tvWithData = tvResource.data
- if (tvWithData != null) {
- val newState = !tvWithData.favorite
- movieRepository.setFavoriteTv(tvWithData, newState)
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement