From da712ed25a2feaba2785d83c5da570706b293a30 Mon Sep 17 00:00:00 2001 From: lvmeng <848755140@qq.com> Date: Tue, 21 Apr 2026 10:11:10 +0800 Subject: [PATCH] =?UTF-8?q?fix(activity):=20=E4=BF=AE=E5=A4=8D=20FoodRecog?= =?UTF-8?q?nizeActivity=20=E7=A7=B0=E9=87=8D=E6=9B=B4=E6=96=B0=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=20useWeight=20=E5=BC=82=E5=B8=B8=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- .../dish/match/ui/FoodRecognizeActivity.kt | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/shuwei/dish/match/ui/FoodRecognizeActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/FoodRecognizeActivity.kt index c213b5a..f8278c6 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/FoodRecognizeActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/FoodRecognizeActivity.kt @@ -234,12 +234,8 @@ class FoodRecognizeActivity : BaseActivity() { } if (weight >= PrepareCookActivity.WEIGHT_RECOGNIZE_VALUE) { adapter.items.firstOrNull { it.isClicked }?.let { item -> - if (weight > (item.useWeight ?: 0.0)) { - // 重量增加:立即更新 - cancelPendingWeightUpdate() - item.useWeight = currentWeight - } else if (pendingWeight != weight) { - // 重量减少且目标值变化:重置延迟任务,3 秒无新变化后更新 + if (pendingWeight != weight) { + // 无论增减,均延迟更新,避免手拿物品时的瞬时增重干扰 cancelPendingWeightUpdate() pendingWeight = weight pendingWeightRunnable = Runnable { @@ -266,10 +262,16 @@ class FoodRecognizeActivity : BaseActivity() { * 携带当前选中食材关闭页面 */ private fun finishWithResult(isManualCancel: Boolean) { + cancelPendingWeightUpdate() + val intent = Intent().apply { putExtra(IS_MANUAL_CANCEL, isManualCancel) if (isManualCancel.not()) { list.getOrNull(selectedPosition)?.let { + // 兜底:若 useWeight 仍为空或0,使用当前实时重量 + if ((it.useWeight ?: 0.0) <= 0.0) { + it.useWeight = currentWeight + } putExtra(EXTRA_SELECTED_ITEM, it) } } @@ -281,6 +283,6 @@ class FoodRecognizeActivity : BaseActivity() { override fun onDestroy() { super.onDestroy() cancelPendingWeightUpdate() -// WeightUtil.removeWeightListener(TAG) + WeightUtil.removeWeightListener(TAG) } }