diff --git a/app/src/main/java/com/shuwei/dish/match/model/SettingItem.kt b/app/src/main/java/com/shuwei/dish/match/model/SettingItem.kt index 669fbc4..16bc855 100644 --- a/app/src/main/java/com/shuwei/dish/match/model/SettingItem.kt +++ b/app/src/main/java/com/shuwei/dish/match/model/SettingItem.kt @@ -24,6 +24,8 @@ data class SettingItem( SEASONING_CONFIG, /** 食材采集 */ FOOD_COLLECT, + /** 减重配置 */ + WEIGHT_CONFIG, /** 数据库查看(隐藏项) */ DB_INSPECT, /** 秤数据监控(隐藏项) */ 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 67688c2..abd0854 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 @@ -223,8 +223,8 @@ class PrepareFoodActivity : BaseActivity() { private var lastWeight = 0.0 private var currentWeight = 0.0 - /** 初始秤读数,净重 = 秤读数 - initialWeight */ - private var initialWeight = 0.0 + /** 初始秤读数,净重 = 秤读数 - initialWeight,从 SpTool.configWeight 读取 */ + private var initialWeight = SpTool.configWeight.toDouble() /** 初始读数是否已从秤获取 */ // private var initialWeightReady = false 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 ba5bb5e..05396a1 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 @@ -99,6 +99,13 @@ class SettingActivity : BaseActivity() { title = "食材采集", onClick = { checkCameraPermission() } ), + SettingItem( + type = SettingItem.Type.WEIGHT_CONFIG, + title = "减重配置", + onClick = { + SingleFragmentActivity.start(this, SingleFragmentActivity.PageType.WEIGHT_CONFIG) + } + ), SettingItem( type = SettingItem.Type.DB_INSPECT, title = "数据库查看", diff --git a/app/src/main/java/com/shuwei/dish/match/ui/SingleFragmentActivity.kt b/app/src/main/java/com/shuwei/dish/match/ui/SingleFragmentActivity.kt index 4a2dca3..b01ddf8 100644 --- a/app/src/main/java/com/shuwei/dish/match/ui/SingleFragmentActivity.kt +++ b/app/src/main/java/com/shuwei/dish/match/ui/SingleFragmentActivity.kt @@ -9,6 +9,7 @@ import com.shuwei.dish.match.ui.fragment.DbInspectFragment import com.shuwei.dish.match.ui.fragment.VectorCollectionFragment import com.shuwei.dish.match.ui.fragment.DeviceConfigFragment import com.shuwei.dish.match.ui.fragment.SeasoningConfigFragment +import com.shuwei.dish.match.ui.fragment.WeightConfigFragment import com.shuwei.dish.match.utils.ext.gone import com.shuwei.dish.match.utils.ext.visible @@ -39,6 +40,9 @@ class SingleFragmentActivity : BaseActivity() { /** 数据库调试查看页 */ DB_INSPECT, + + /** 默认减重配置页 */ + WEIGHT_CONFIG, } companion object { @@ -101,6 +105,7 @@ class SingleFragmentActivity : BaseActivity() { PageType.COOK_MODE -> "菜品模式" PageType.SEASONING_CONFIG -> "调料区设置" PageType.DB_INSPECT -> "数据库查看" + PageType.WEIGHT_CONFIG -> "减重配置" } /** @@ -111,6 +116,7 @@ class SingleFragmentActivity : BaseActivity() { PageType.COOK_MODE -> DeviceConfigFragment() PageType.SEASONING_CONFIG -> SeasoningConfigFragment() PageType.DB_INSPECT -> DbInspectFragment() + PageType.WEIGHT_CONFIG -> WeightConfigFragment() } override fun onResume() { diff --git a/app/src/main/java/com/shuwei/dish/match/ui/fragment/WeightConfigFragment.kt b/app/src/main/java/com/shuwei/dish/match/ui/fragment/WeightConfigFragment.kt new file mode 100644 index 0000000..e5b6a87 --- /dev/null +++ b/app/src/main/java/com/shuwei/dish/match/ui/fragment/WeightConfigFragment.kt @@ -0,0 +1,46 @@ +package com.shuwei.dish.match.ui.fragment + +import android.view.LayoutInflater +import android.view.ViewGroup +import com.shuwei.dish.match.base.BaseFragment +import com.shuwei.dish.match.databinding.FragmentWeightConfigBinding +import com.shuwei.dish.match.utils.SpTool +import com.shuwei.dish.match.utils.ext.clickWithDebounce +import com.shuwei.dish.match.utils.ext.toast + +/** + * 默认减重配置 Fragment + * 允许用户设置打开 PrepareFoodActivity 时的初始减重基准值(单位:克) + */ +class WeightConfigFragment : BaseFragment() { + + override fun inflateBinding( + inflater: LayoutInflater, + container: ViewGroup? + ): FragmentWeightConfigBinding { + return FragmentWeightConfigBinding.inflate(inflater, container, false) + } + + override fun initialize() { + // 若已有配置值则回填到输入框 + val saved = SpTool.configWeight + if (saved != 0) { + binding.etConfigWeight.setText(saved.toString()) + } + + binding.btnConfirm.clickWithDebounce { + val input = binding.etConfigWeight.text.toString().trim() + if (input.isEmpty()) { + toast("请输入减重值") + return@clickWithDebounce + } + val weight = input.toIntOrNull() + if (weight == null || weight < 0) { + toast("请输入有效的减重值") + return@clickWithDebounce + } + SpTool.configWeight = weight + toast("保存成功") + } + } +} diff --git a/app/src/main/java/com/shuwei/dish/match/utils/SpTool.kt b/app/src/main/java/com/shuwei/dish/match/utils/SpTool.kt index e5e5cc0..d9ff71a 100644 --- a/app/src/main/java/com/shuwei/dish/match/utils/SpTool.kt +++ b/app/src/main/java/com/shuwei/dish/match/utils/SpTool.kt @@ -16,6 +16,8 @@ object SpTool { const val SCALE_DEVICE_PORT = "scaleDevicePort" /** 食堂 ID,默认 "0" */ const val CANTEEN_ID = "canteenId" + /** 默认减重克数 */ + const val CONFIG_WEIGHT = "configWeight" val pref = BaseApp.getSharedPref()!! @@ -41,6 +43,13 @@ object SpTool { put(LAUNCH_PAGE_TYPE, value) } + /** 默认减重(克),打开 PrepareFoodActivity 时作为 initialWeight 基准值 */ + var configWeight: Int + get() = getInt(CONFIG_WEIGHT, 0) + set(value) { + put(CONFIG_WEIGHT, value) + } + /** 食堂 ID,持久化存储,默认 "0" */ var canteenId: String get() = getString(CANTEEN_ID, "0") diff --git a/app/src/main/res/layout/fragment_weight_config.xml b/app/src/main/res/layout/fragment_weight_config.xml new file mode 100644 index 0000000..aae0e83 --- /dev/null +++ b/app/src/main/res/layout/fragment_weight_config.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + +