Viewmodel.observe зациклился
val listshCode2 = ArrayList<ScanModel>()
try {
viewModel.getByShCode(edShtrih.text.toString())
.observe(this@Scan) { listshCode1 ->
listshCode2.addAll(listshCode1)
if (listshCode2.isEmpty()) {
viewModel.insert(
ScanModel(
shCode = edShtrih.text.toString().trim(),
countNo = edCount.text.toString().trim(),
dokNo = getDockNum.trim()
)
) {}
} else {
val sum =
listshCode2.last().countNo.toInt() + edCount.text.toString().toInt()
viewModel.update(
ScanModel(
id = listshCode2.last().id,
shCode = edShtrih.text.toString(),
countNo = sum.toString(),
dokNo = getDockNum.trim()
)
) {}
}
}
} catch (e: Exception) {
Log.e("vm getByShcode", e.toString())
}
После того как он сделал запрос Insert или Update он возвращается к запросу getByShCode и идет по кругу. Как можно сделать что бы он один раз делал запрос.
Источник: Stack Overflow на русском