Получать с сервера только те id, которые сохранены в базе
В приложении есть корзина, которая сохраняет id элемента и его количество. При переходе на экран корзины должен отображаться список только сохраненных товаров. Но вместо этого я получаю полностью весь список товаров с сервера и уже у него меняется количество, на сохраненное в корзине. Как не отображать товары, которые нет в корзине?
Метод, который получает id сохраненных в корзине товаров
private fun getProductsFromDatabase() {
subscriptions += dataManager.getAllFoods()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeBy { productsDatabase ->
this.productsDatabase = productsDatabase
productsDatabase.forEach { product ->
listId.add((product.id!!))
}
list = listId.toString()
getFoodsById(list.removePrefix("[").removeSuffix("]"))
}
}
Метод, который получает список с сервера (думаю именно в нем не правильная логика)
private fun getFoodsById(listId: String) {
viewState.showProgress(true)
subscriptions += interactor.getProductById(listId)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribeBy(
onSuccess = { products ->
for (product in products.productsModelSupermarket) {
for (item in productsDatabase) {
if (product.idListProducts == item.id) {
product.count = item.count
} else{
}
}
}
viewState.getSavedProduct(products)
viewState.showProgress(false)
},
onError = {
viewState.showMessage("Ошибка")
viewState.showProgress(false)
}
)
}