fix(ui): 修复子设备调料数据有时不显示的问题
将 observeScaleData 中的 collectLatest 改为 collect, 避免多个秤数据并发到来时 block 被取消导致 ts 已记录但 rawWeightMap 未更新,造成后续数据被永久跳过的竞态问题。
This commit is contained in:
@@ -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 重发,跳过
|
||||
|
||||
Reference in New Issue
Block a user