Ismoil Foziljonov
03/27/2022, 1:09 PMpackage me.ismoil.rickandmorty.ui.screens.characters
import androidx.lifecycle.*
import androidx.paging.PagingData
import androidx.paging.cachedIn
import dagger.hilt.android.lifecycle.HiltViewModel
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.launch
import me.ismoil.rickandmorty.common.Resource
import me.ismoil.rickandmorty.data.repository.CharacterRepository
import me.ismoil.rickandmorty.domain.model.Character
import me.ismoil.rickandmorty.domain.model.Location
import me.ismoil.rickandmorty.domain.use_cases.get_characters.GetCharactersUseCase
import timber.log.Timber
import java.lang.Exception
import javax.inject.Inject
@HiltViewModel
class CharacterViewModel @Inject constructor(
private var getCharactersUseCase: GetCharactersUseCase
) : ViewModel() {
private lateinit var _charactersFlow: Flow<Resource<Flow<PagingData<Character>>>>
val charactersFlow: Flow<Resource<Flow<PagingData<Character>>>> get() = _charactersFlow
init {
Timber.tag("TTT").d("init viewModel")
getAllCharacters()
}
private fun getAllCharacters() {
Timber.tag("TTT").d("get all characters")
_charactersFlow = getCharactersUseCase()
}
}
viewModel