feat(setting): 添加净菜包功能并优化设置页面

- 在BaseApp中新增ScaleDeviceConfig、AppUtil等依赖导入
- 恢复InitActivity中的原有路由逻辑,移除HomeV2Activity跳转
- 移除SettingActivity中设置项的硬编码标题,改用枚举默认值
- 新增CLEAN_PACKAGE、MEAL_PACKAGE、MEAL_PACKAGE_TEST三种设置类型
- 为净菜包功能添加对应的页面跳转逻辑
- 隐藏数据库查看、秤数据监控等调试功能项
This commit is contained in:
2026-06-02 09:35:30 +08:00
parent 3884738911
commit c2cf7289b7
4 changed files with 57 additions and 44 deletions
@@ -7,8 +7,12 @@ import android.content.Intent
import android.content.IntentFilter import android.content.IntentFilter
import android.content.SharedPreferences import android.content.SharedPreferences
import android.os.Bundle import android.os.Bundle
import android.util.Log
import com.shuwei.dish.match.BuildConfig
import com.shuwei.dish.match.R import com.shuwei.dish.match.R
import com.shuwei.dish.match.db.DatabaseProvider import com.shuwei.dish.match.db.DatabaseProvider
import com.shuwei.dish.match.scale.ScaleDeviceConfig
import com.shuwei.dish.match.utils.AppUtil
import com.shuwei.dish.match.utils.BootReceiver import com.shuwei.dish.match.utils.BootReceiver
import com.shuwei.dish.match.utils.CrashHandler import com.shuwei.dish.match.utils.CrashHandler
import com.shuwei.dish.match.utils.SpTool import com.shuwei.dish.match.utils.SpTool
@@ -11,30 +11,24 @@ package com.shuwei.dish.match.model
*/ */
data class SettingItem( data class SettingItem(
val type: Type, val type: Type,
val title: String, val title: String = type.label,
val subtitle: String? = null, val subtitle: String? = null,
val isHidden: Boolean = false, val isHidden: Boolean = false,
val onClick: () -> Unit val onClick: () -> Unit
) { ) {
/** 设置菜单项类型枚举 */ /** 设置菜单项类型枚举 */
enum class Type { enum class Type(val label: String) {
/** 菜品模式切换 */ COOK_MODE("菜品模式"),
COOK_MODE, SEASONING_CONFIG("调料区设置"),
/** 调料区设置 */ FOOD_COLLECT("食材采集"),
SEASONING_CONFIG, WEIGHT_CONFIG("减重配置"),
/** 食材采集 */ CLEAN_PACKAGE("净菜包"),
FOOD_COLLECT, MEAL_PACKAGE("餐品净菜包"),
/** 减重配置 */ MEAL_PACKAGE_TEST("餐品净菜包-测试"),
WEIGHT_CONFIG, DB_INSPECT("数据库查看"),
/** 数据库查看(隐藏项) */ SCALE_OBSERVE("秤数据监控"),
DB_INSPECT, ENV_SWITCH("切换环境"),
/** 秤数据监控(隐藏项) */ CLEAR_DATA("数据清除"),
SCALE_OBSERVE, TEST_SEASONING("测试调料拿取"),
/** 切换环境(隐藏项) */
ENV_SWITCH,
/** 数据清除(隐藏项) */
CLEAR_DATA,
/** 测试调料拿取(隐藏项) */
TEST_SEASONING,
} }
} }
@@ -94,21 +94,21 @@ class InitActivity : BaseActivity() {
// window.decorView.post { finish() } // window.decorView.post { finish() }
// return@launch // return@launch
// } // }
// // 主设备:走原有路由逻辑 // 主设备:走原有路由逻辑
// when (SpTool.cookMode) { when (SpTool.cookMode) {
// 0 -> { 0 -> {
// startActivity<CookingModeActivity>() startActivity<CookingModeActivity>()
// } }
//
// 1 -> { 1 -> {
// goSampling() goSampling()
// } }
//
// else -> { else -> {
// startActivity<HomeActivity>() startActivity<HomeActivity>()
// } }
// } }
startActivity<HomeV2Activity>() // startActivity<HomeV2Activity>()
// 延迟到下一帧 finish,避免与 LaunchActivityItem 事务竞态导致 // 延迟到下一帧 finish,避免与 LaunchActivityItem 事务竞态导致
// "Activity client record must not be null" 偶发崩溃 // "Activity client record must not be null" 偶发崩溃
window.decorView.post { finish() } window.decorView.post { finish() }
@@ -77,7 +77,6 @@ class SettingActivity : BaseActivity() {
private fun buildAllItems(): List<SettingItem> = listOf( private fun buildAllItems(): List<SettingItem> = listOf(
SettingItem( SettingItem(
type = SettingItem.Type.COOK_MODE, type = SettingItem.Type.COOK_MODE,
title = "菜品模式",
subtitle = when (SpTool.cookMode) { subtitle = when (SpTool.cookMode) {
0 -> "当前:制作模式" 0 -> "当前:制作模式"
1 -> "当前:采样模式" 1 -> "当前:采样模式"
@@ -89,26 +88,46 @@ class SettingActivity : BaseActivity() {
), ),
SettingItem( SettingItem(
type = SettingItem.Type.SEASONING_CONFIG, type = SettingItem.Type.SEASONING_CONFIG,
title = "调料区设置",
onClick = { onClick = {
SingleFragmentActivity.start(this, SingleFragmentActivity.PageType.SEASONING_CONFIG) SingleFragmentActivity.start(this, SingleFragmentActivity.PageType.SEASONING_CONFIG)
} }
), ),
SettingItem( SettingItem(
type = SettingItem.Type.FOOD_COLLECT, type = SettingItem.Type.FOOD_COLLECT,
title = "食材采集",
onClick = { checkCameraPermission() } onClick = { checkCameraPermission() }
), ),
SettingItem( SettingItem(
type = SettingItem.Type.WEIGHT_CONFIG, type = SettingItem.Type.WEIGHT_CONFIG,
title = "减重配置",
onClick = { onClick = {
SingleFragmentActivity.start(this, SingleFragmentActivity.PageType.WEIGHT_CONFIG) SingleFragmentActivity.start(this, SingleFragmentActivity.PageType.WEIGHT_CONFIG)
} }
), ),
SettingItem(
type = SettingItem.Type.CLEAN_PACKAGE,
onClick = {
startActivity<CleanPackActivity> {
putExtra(CleanPackActivity.EXTRA_TYPE, CleanPackActivity.TYPE_CLEAN)
}
}
),
SettingItem(
type = SettingItem.Type.MEAL_PACKAGE,
onClick = {
//startActivity<CleanPackActivity> {
// putExtra(CleanPackActivity.EXTRA_TYPE, CleanPackActivity.TYPE_MEAL)
//}
}
),
SettingItem(
type = SettingItem.Type.MEAL_PACKAGE_TEST,
onClick = {
startActivity<CleanPackActivity> {
putExtra(CleanPackActivity.EXTRA_TYPE, CleanPackActivity.TYPE_MEAL)
}
}
),
SettingItem( SettingItem(
type = SettingItem.Type.DB_INSPECT, type = SettingItem.Type.DB_INSPECT,
title = "数据库查看",
isHidden = true, isHidden = true,
onClick = { onClick = {
SingleFragmentActivity.start(this, SingleFragmentActivity.PageType.DB_INSPECT) SingleFragmentActivity.start(this, SingleFragmentActivity.PageType.DB_INSPECT)
@@ -116,25 +135,21 @@ class SettingActivity : BaseActivity() {
), ),
SettingItem( SettingItem(
type = SettingItem.Type.SCALE_OBSERVE, type = SettingItem.Type.SCALE_OBSERVE,
title = "秤数据监控",
isHidden = true, isHidden = true,
onClick = { startActivity<MasterScaleActivity>() } onClick = { startActivity<MasterScaleActivity>() }
), ),
SettingItem( SettingItem(
type = SettingItem.Type.ENV_SWITCH, type = SettingItem.Type.ENV_SWITCH,
title = "切换环境",
isHidden = true, isHidden = true,
onClick = { EnvSwitchDialog(this).show() } onClick = { EnvSwitchDialog(this).show() }
), ),
SettingItem( SettingItem(
type = SettingItem.Type.CLEAR_DATA, type = SettingItem.Type.CLEAR_DATA,
title = "数据清除",
isHidden = true, isHidden = true,
onClick = { showClearDataDialog() } onClick = { showClearDataDialog() }
), ),
SettingItem( SettingItem(
type = SettingItem.Type.TEST_SEASONING, type = SettingItem.Type.TEST_SEASONING,
title = "测试调料拿取",
isHidden = true, isHidden = true,
onClick = { startActivity<SubmitFoodActivity> { } } onClick = { startActivity<SubmitFoodActivity> { } }
), ),