未放餐盘取餐报警阈值独立配置实施计划

目标:将 A02 未放餐盘取餐报警阈值从起跳值中拆分为独立、可配置的 1–50g 参数,默认 5g。

架构

Constants 中定义独立键和范围,在无 Android 依赖的策略类中集中校验与兜底,使设置页和首页使用同一套规则。设置页使用系统列表提供 5/10/20/30/50g 预设和“自定义输入”,由既有 SingleInputDialog 完成整数输入;HomeActivity 将独立配置传给既有 NoTrayPickDetector

任务 1:独立阈值策略与单元测试

文件:新增 NoTrayPickAlarmThresholdPolicy.java 和对应测试;修改 Constants.java

  1. 测试 0 与 51 回退到默认 5,1 与 50 为合法边界。
  2. 新增 NO_TRAY_PICK_ALARM_THRESHOLD、默认值 5、最小值 1、最大值 50。
  3. 在策略类实现 isValidnormalize
  4. 运行策略单元测试。

任务 2:A02 读取独立阈值

文件:修改 HomeActivity.java;补充 NoTrayPickDetectorTest.java

  1. 增加 20g 阈值边界测试:100g 降至 81g 不报警,降至 80g 报警。
  2. HomeActivity 从新 MMKV 键读取、经策略类校验后创建检测器。
  3. 运行 A02 相关单元测试,确认默认 5g 与 20g 边界正确。

任务 3:设置页预设选择与自定义输入

文件:修改 activity_set.xmlstrings.xmlSetActivity.java

  1. 在起跳重量后新增“未放餐盘报警阈值”条目和校验提示资源。
  2. 回显经策略类校验后的独立配置,并回正异常存量值。
  3. 弹出 5/10/20/30/50g 与“自定义输入”的列表;自定义输入仅接受 1–50 的整数。
  4. 人工确认新项的保存/回显与起跳重量互不影响。

任务 4:全量验证与交付记录

文件:新增提示词工程下的同名 Markdown/HTML 变更记录。

  1. 使用 JDK 8 运行 testDebugUnitTest assembleDebug
  2. 检查差异范围与空白错误。
  3. 记录独立配置、设置交互、测试结果和未覆盖的现场验证;两种文档格式保持一致。

结论

实现只替换 A02 的阈值来源,不修改 NoTrayPickDetector 的比较算法,也不迁移或改变旧 skip_weight 的业务含义。