#android #kotlin #android-livedata #android-livedata-transformations
Вопрос:
Мой код что-то вроде
val isLoading = Transformations.map(_profileResponse) {
it is Resource.Loading
}
val error: LiveData<String> = Transformations.map(_profileResponse) { result ->
(result as? Resource.Failure)?.message
}
val profile: LiveData<Profile> = Transformations.map(_profileResponse) { result ->
(result as? Resource.Success)?.data
}
fun fetchProfile() {
viewModelScope.launch {
mainRepository.getUserProfile().collectLatest {
_profileResponse.value = it
}
}
fun updateProfile(editableProfile: EditableProfile) {
viewModelScope.launch {
mainRepository.updateUserProfile(editableProfile)
.collectLatest {
_profileResponse.value = it
}
}
}
FetchProfile получает профиль, а updateProfile обновляет профиль. После выполнения вызова updateProfile профиль выдает значение null из-за загрузки, что ожидается. Поскольку я использую этот экземпляр профиля в компоновке привязки данных (нет возможности фильтровать), значения становятся нулевыми при создании сетевого вызова. Есть ли какой-либо способ остановить экземпляр профиля, не выдающий значение null?
Заранее спасибо.