```package me.ismoil.rickandmorty.ui.screens.chara...
# android
i
Copy code
package 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
😶 1
🧵 5