Professor Alex Felipe, quando vi a atividade 5 da Aula 4 fiquei um pouco confuso com a sua abordagem para atualizar a visualização, então tentei fazer da minha maneira e acho que encontrei uma forma mais fluida de atualizar a tela de visualização.
repository.buscaPorId(noticiaId)
meu busca por ID ficou da seguinte maneira no repository
fun buscaPorId(
noticiaId: Long
): LiveData<Noticia?> {
BaseAsyncTask(quandoExecuta = {
dao.buscaPorId(noticiaId)
}, quandoFinaliza = {
noticiaEncontrada.value = it
}).execute()
return noticiaEncontrada
}
repara que quando eu acho a noticia eu atualizo a property "noticiaEncontrada". E quando eu executo o remove(), eu uso essa instancia de "noticiaEncontrada" que esta salva no repository para remover. Dessa maneira nao preciso passar nada para o remove, para ele saber quem ele deve remover.
fun remove(): LiveData<Resource<Void?>> {
val liveData = MutableLiveData<Resource<Void?>>()
noticiaEncontrada.value?.let {
removeNaApi(it, quandoSucesso = {
liveData.value = Resource(null)
}, quandoFalha = { erro ->
liveData.value = Resource(null, erro)
})
}
return liveData
}
Acredito que seja uma abordagem mais interessante e um pouco menos confusa. Gostaria de saber sua opiniao