succes: MutableLiveData<Boolean> = MutableLiveData<Boolean>(false)
val errorData: MutableLiveData<ErrorData> = MutableLiveData<ErrorData>()
if (response.body()?.error == null){
preferencesHelper.putStringValue(userTokenKey,response.body()!!.result.token)
succes.value = true
}else {
error.value = true
errorData.value = response.body()!!.error
}
а во view так
viewModel.succes.observe(viewLifecycleOwner){
println("succes. if need replase screen and more")
}
viewModel.error.observe(viewLifecycleOwner){
viewModel.errorData.observe(viewLifecycleOwner){
println("Show error")
}
}
Теперь вопрос. На сколько этот код костыль? И как сделать лучше?
такую логику обычно выполняет репозиторий а viewModel получает данные от remoLocal либо repoRemote и обзервит их во view
на один раз думаю не страшно, но если всегда так делать, то плохо
зачем oдин observe внутри другого observe?
Вот и я думаю что слишком костильно
ну один проверяет на error true. А второй отдает ErrorData
должен быть один обзервер и он будет возращать статус
ты можешь просто обзервить error, и вытягивать errorData когда прилетает уведомление подписчику
Обсуждают сегодня