From b24435744cde60f88104348375eb400366263245 Mon Sep 17 00:00:00 2001 From: lvmeng <848755140@qq.com> Date: Thu, 14 May 2026 15:23:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(setting):=20=E6=B7=BB=E5=8A=A0=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E8=B0=83=E6=96=99=E6=8B=BF=E5=8F=96=E5=8A=9F=E8=83=BD?= =?UTF-8?q?=E5=B9=B6=E4=BC=98=E5=8C=96=E7=95=8C=E9=9D=A2=E4=BA=A4=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在设置页面添加测试调料拿取入口并实现跳转功能 - 优化食材搜索对话框的网格布局管理器初始化逻辑 - 为未识别食材对话框添加重新识别和取消回调处理 - 优化准备食材页面标题文字显示效果 - 修复调料切换按钮点击防抖处理 --- .../dish/match/dialog/FoodSearchDialog.kt | 7 +++- .../dish/match/ui/FoodRecognizeActivity.kt | 27 ++++------------ .../dish/match/ui/PrepareFoodActivity.kt | 7 +++- .../shuwei/dish/match/ui/SettingActivity.kt | 4 +++ .../dish/match/ui/SubmitFoodActivity.kt | 2 +- .../main/res/layout/activity_prepare_food.xml | 2 ++ app/src/main/res/layout/activity_setting.xml | 32 +++++++++++++++++++ 7 files changed, 57 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/com/shuwei/dish/match/dialog/FoodSearchDialog.kt b/app/src/main/java/com/shuwei/dish/match/dialog/FoodSearchDialog.kt index bc782ca..9401330 100644 --- a/app/src/main/java/com/shuwei/dish/match/dialog/FoodSearchDialog.kt +++ b/app/src/main/java/com/shuwei/dish/match/dialog/FoodSearchDialog.kt @@ -232,7 +232,12 @@ class FoodSearchDialog( } return } - binding.recyclerView.layoutManager = GridLayoutManager(activity, 2, GridLayoutManager.VERTICAL, false) + // 仅当当前不是 GridLayoutManager 时才重新赋值(空态切回网格时) + binding.recyclerView.run { + if (layoutManager !is GridLayoutManager) { + layoutManager = GridLayoutManager(activity, 2, GridLayoutManager.VERTICAL, false) + } + } if (pageNo == 1) list.clear() // 将接口返回的 rawMaterialsType(全部种类)移存到 rawMaterialsTypes,供弹窗使用 records.forEach { 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 5d6d754..6cc8181 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 @@ -212,36 +212,21 @@ class FoodRecognizeActivity : BaseActivity() { currentWeight = intent.getDoubleExtra(EXTRA_CURRENT_WEIGHT, 0.0) initialWeight = intent.getDoubleExtra(EXTRA_INITIAL_WEIGHT, 0.0) binding.tvWeight.text = "${currentWeight}g" -// val tempList = arrayListOf() - // Process recognized name list if available recognizeNameList?.apply { - // Iterate through each recognized item forEach { - // Extract goods name by splitting "WP" and taking the first part val goodsName = it.name.split("WP").first() val rawMaterialsType = it.rawMaterialsType - // Add to goods name list and name-score mapping goodsNameList.add(GoodsNameQueryDTO(goodsName, rawMaterialsType)) nameScoreMap.put(goodsName, it) - -// // TODO: 测试数据,临时使用------------------------- -// val testData = buildTestData(it) -// tempList.add(testData) -// // TODO: 测试数据,临时使用------------------------- } -// // TODO: 测试数据,临时使用------------------------- -// loadRecognizeList(tempList) -// // TODO: 测试数据,临时使用------------------------- - // Clear the recognize name list after processing recognizeNameList = null } - // If goods name list is not empty, query goods list from network -// if (goodsNameList.isNotEmpty()){ - netViewModel.queryGoodsList(goodsType = "0", goodsNames = goodsNameList) -// } else { -// loadRecognizeList(emptyList()) -// } + if (goodsNameList.isNotEmpty()) { + netViewModel.queryGoodsList(goodsType = "0", goodsNames = goodsNameList) + } else { + loadRecognizeList(emptyList()) + } } private fun buildTestData(item: FoodModule.IdNameScore): GoodsItem { @@ -309,7 +294,7 @@ class FoodRecognizeActivity : BaseActivity() { //保存原goodsId goods.oldGoodsId = goods.goodsId //PrepareFoodActivity中的goodsId就是materId - goods.goodsId = goods.materId ?:"" + goods.goodsId = goods.materId ?: "" list.add(goods.also { it.foodScore = foodScore }) } adapter.notifyDataSetChanged() diff --git a/app/src/main/java/com/shuwei/dish/match/ui/PrepareFoodActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/PrepareFoodActivity.kt index 91a2424..11ce0c8 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/PrepareFoodActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/PrepareFoodActivity.kt @@ -610,7 +610,12 @@ class PrepareFoodActivity : BaseActivity() { notRecognizeDialog = CommonDialog(this) .setTitle("提示") .setContent("未识别到食材,请稍后重试") - .setNegativeButton("取消") + .setNegativeButton("取消") { + manualCancelFlag = true + } + .setNeutralButton("重新识别") { + recognizeFood(currentWeight) + } .setPositiveButton("手动设置"){ loadRecognizeResultPage(emptyList()) } diff --git a/app/src/main/java/com/shuwei/dish/match/ui/SettingActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/SettingActivity.kt index c4136d8..d3293db 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/SettingActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/SettingActivity.kt @@ -52,6 +52,7 @@ class SettingActivity : BaseActivity() { binding.llScaleObserve.visible() binding.llClearData.visible() binding.llEnvSwitch.visible() + binding.llTestSeasoning.visible() } }) @@ -93,6 +94,9 @@ class SettingActivity : BaseActivity() { binding.llEnvSwitch.clickWithDebounce { EnvSwitchDialog(this).show() } + binding.llTestSeasoning.clickWithDebounce { + startActivity { } + } } /** 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 bad0d72..f376272 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 @@ -312,7 +312,7 @@ class SubmitFoodActivity : BaseActivity() { private fun addViewListener() { // 切换调料列表布局:4 列卡片 ↔ 2 列水平 - binding.ivSeasoningLayoutToggle.setOnClickListener { + binding.ivSeasoningLayoutToggle.clickWithDebounce { seasoningAdapter.isListMode = !seasoningAdapter.isListMode val spanCount = if (seasoningAdapter.isListMode) 2 else 4 (binding.rvSeasoning.layoutManager as? GridLayoutManager)?.spanCount = spanCount diff --git a/app/src/main/res/layout/activity_prepare_food.xml b/app/src/main/res/layout/activity_prepare_food.xml index 1dcc489..5215b94 100644 --- a/app/src/main/res/layout/activity_prepare_food.xml +++ b/app/src/main/res/layout/activity_prepare_food.xml @@ -30,6 +30,8 @@ android:imeOptions="actionSearch" android:paddingStart="3dp" android:paddingEnd="3dp" + android:maxLines="1" + android:ellipsize="end" android:textColor="@color/black333" android:textColorHint="@color/gray_c8" android:textSize="40sp" diff --git a/app/src/main/res/layout/activity_setting.xml b/app/src/main/res/layout/activity_setting.xml index 824d84e..33ccc06 100644 --- a/app/src/main/res/layout/activity_setting.xml +++ b/app/src/main/res/layout/activity_setting.xml @@ -237,6 +237,38 @@ tools:ignore="ContentDescription" /> + + + + + + +