diff --git a/app/src/main/java/com/shuwei/dish/match/ui/CookingModeActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/CookingModeActivity.kt index b4e4649..3f6cd64 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/CookingModeActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/CookingModeActivity.kt @@ -197,4 +197,10 @@ class CookingModeActivity : BaseActivity() { isVisible = false } + fun clearSearchText() { + isClearingByTabSwitch = true + binding.etInputDish.text?.clear() + isClearingByTabSwitch = false + } + } \ No newline at end of file diff --git a/app/src/main/java/com/shuwei/dish/match/ui/SubmitFoodActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/SubmitFoodActivity.kt index 7c6299b..b2eeab2 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/SubmitFoodActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/SubmitFoodActivity.kt @@ -102,6 +102,12 @@ class SubmitFoodActivity : BaseActivity() { */ private val lastTsMap = mutableMapOf() + /** 主设备 2格秤的初始重量,首次收到数据时赋值;调用清零后重置为 0.0 */ + private var initWeight: Double = 0.0 + + /** initWeight 是否已完成初始化 */ + private var initWeightSet: Boolean = false + @Suppress("unchecked_cast", "DEPRECATION") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -316,7 +322,11 @@ class SubmitFoodActivity : BaseActivity() { val content = getRemindSpannable("开始制作") showRemindDialog(content) { cook() } } - binding.btnWeightClear.clickWithDebounce { WeightUtil.tareTwo(2) } + binding.btnWeightClear.clickWithDebounce { + WeightUtil.tareTwo(2) + // 清零后将初始重量重置为 0,后续以秤读数直接作为净重 + initWeight = 0.0 + } binding.btnSubmit.clickWithDebounce { if (cookFoodEntity.foodWeight <= 0.toDouble()) { toast("未识别到菜品熟重") @@ -329,12 +339,19 @@ class SubmitFoodActivity : BaseActivity() { // 监听主设备 2格秤的熟重 WeightUtil.addWeightListener(TAG) { address, _, weight -> if (address == AddressUtil.TWO) { - cookFoodEntity.foodWeight = weight - if (weight > 1000) { - binding.tvTotalWeight.text = "${(weight / 1000f).roundedDecimalPlace(3)}" + // 首次收到数据时记录初始重量 + if (!initWeightSet) { + initWeight = weight + initWeightSet = true + } + // 实际净重 = 秤读数 - 初始重量 + val netWeight = weight - initWeight + cookFoodEntity.foodWeight = netWeight + if (netWeight > 1000) { + binding.tvTotalWeight.text = "${(netWeight / 1000f).roundedDecimalPlace(3)}" binding.tvWeightUnit.text = "千克" } else { - binding.tvTotalWeight.text = "$weight" + binding.tvTotalWeight.text = "$netWeight" binding.tvWeightUnit.text = "克" } } diff --git a/app/src/main/java/com/shuwei/dish/match/ui/fragment/FoodListFragment.kt b/app/src/main/java/com/shuwei/dish/match/ui/fragment/FoodListFragment.kt index 9b15bac..2d9d707 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/fragment/FoodListFragment.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/fragment/FoodListFragment.kt @@ -28,8 +28,10 @@ import com.shuwei.dish.match.utils.ext.startActivity import com.shuwei.dish.match.utils.ext.toast import com.yanzhenjie.recyclerview.SwipeMenuItem import androidx.fragment.app.viewModels +import kotlinx.coroutines.Dispatchers import java.io.Serializable import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext class FoodListFragment : BaseFragment() { @@ -192,6 +194,10 @@ class FoodListFragment : BaseFragment() { ) foodName?.let { param["foodName"] = it } if (pageNo == 1) { + //解决回调页面刷新本地数据时,输入框内容还显示的问题 + if (foodName.isNullOrBlank()) { + activity.clearSearchText() + } pendingLocalList = activity.appViewModel.getCookFoodListDirect( cookMode = 0, dinnerType = dinnerType