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" /> + + + + + + +