У меня следующая ситуация:
Это мой класс хранилища:
import com.mikhailovskii.timesapp.util.Result
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.flow
class LoginRepository {
fun fetchUser() = flow {
emit(Result.Loading)
delay(1000)
emit(Result.Success((0..20).random()))
}
}
Есть класс ViewModel:
import androidx.lifecycle.LiveData
import androidx.lifecycle.ViewModel
import com.mikhailovskii.timesapp.util.Result
class LoginViewModel() : ViewModel() {
private val loginRepository = LoginRepository()
private val a = loginRepository.fetchUser()
val user: LiveData<Result<Int>> get() = loginRepository.fetchUser().asLiveData()
}
И есть класс результата:
sealed class Result<out R> {
data class Success<out T>(val data: T) : Result<T>()
object Loading : Result<Nothing>()
object Error : Result<Nothing>()
}
Итак, когда я пытаюсь преобразовать Поток Репозитория в LiveData с помощью метода asLiveData
, asLiveData
подчеркивается, и студия пишет, что это неразрешенная ссылка. Но я не могу понять, почему это происходит, так как репозиторий возвращает Flow. Итак, какова проблема и как я могу ее решить?