fix(ui): 修复子设备调料数据有时不显示的问题

将 observeScaleData 中的 collectLatest 改为 collect,
避免多个秤数据并发到来时 block 被取消导致 ts 已记录但
rawWeightMap 未更新,造成后续数据被永久跳过的竞态问题。
This commit is contained in:
2026-05-15 10:14:48 +08:00
parent 64586175ff
commit b562694665
@@ -36,7 +36,6 @@ import com.shuwei.dish.match.utils.ext.startActivity
import com.shuwei.dish.match.utils.ext.toJsonString
import com.shuwei.dish.match.utils.ext.toast
import com.shuwei.dish.match.utils.ext.visible
import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.launch
@SuppressLint("UseSparseArrays")
@@ -226,7 +225,7 @@ class SubmitFoodActivity : BaseActivity() {
private fun observeScaleData() {
val flow = ScaleServiceManager.allScales ?: return
lifecycleScope.launch {
flow.collectLatest { scaleMap ->
flow.collect { scaleMap ->
//Log.d(TAG, "observeScaleData,scaleMap=${scaleMap.toJsonString()}")
scaleMap.forEach { (key, data) ->
// ts 未变化说明是其他秤更新触发的 StateFlow 重发,跳过