fun getNotifications(priorityNum: Int) =
object : NetworkBoundResource<List<Notification>, Resource<List<Notification>>>(exec) {
override fun saveCallResult(item: Resource<List<Notification>>) {
item.data!!.forEach {
val id = db.notification().insert(it)
if (id == -1L) {
db.notification().update(
it.id,
it.subject,
it.description,
it.priority,
it.community,
it.createdTime
)
}
}
}
override fun shouldFetch(data: List<Notification>?) = true
override fun loadFromDb(): LiveData<List<Notification>> {
return db.notification().getAllNotifications()
}
override fun createCall(): LiveData<ApiResponse<Resource<List<Notification>>>> =
api.getNotifications(pref.userId!!, priorityNum)
}.asLiveData()
Я использую что-то подобное в своем хранилище для локальной базы данных. Я хочу, чтобы вы могли видеть, что mustFetch () всегда имеет значение true, что приводит к вызову API, даже если данные не изменены.Итак, это вызывает нежелательные вызовы API. Как избежать этого и вызывать серверную часть только при наличии новой вставки или обновления на стороне сервера