Viewmodel.observe зациклился

Рейтинг: 0Ответов: 0Опубликовано: 26.02.2023
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 и идет по кругу. Как можно сделать что бы он один раз делал запрос.

Ответы

Ответов пока нет.