熟食结算整行三色状态卡实施计划

执行约束:当前工作区已有未提交的“先放后选”等改动。实施时只追加状态卡相关补丁,不清理、不还原、不暂存、不提交、不推送、不切换分支。

目标:隐藏“当前商品:xxx”,把称重状态改造成整行双层状态卡,并以蓝、橙、绿覆盖全部现有状态。
架构:保留状态机与业务渲染入口,新增纯展示映射类;Activity 只应用视觉结果,现有语音去重保持不变。
技术:Android XML、Java 8、Vector Drawable、JUnit 4、Gradle/AGP 4.2.1。

0. 文件结构

类型文件与职责
新增 JavaCookedFoodStatusPresentation.java:主状态到辅助说明、三色 Tone 的纯展示映射。
新增测试CookedFoodStatusPresentationTest.java:覆盖 INFO、WARNING、SUCCESS 和未知状态回退。
新增资源三套背景、三枚矢量图标、具名颜色、尺寸和辅助说明。
修改布局activity_cooked_food.xml:移除当前商品,加入整行状态卡。
修改页面CookedFoodActivity.java:移除当前商品引用并应用状态展示。
交付记录创建同 basename 的 Markdown 与 HTML 变更记录。

任务清单

Task 1:建立工作区基线并锁定边界

Task 2:增加具名视觉资源和辅助文案

Task 3:以 TDD 增加状态展示映射

READY_TO_PLACE / READY_TO_SELECT → INFO
WAITING_REMOVE_ZERO              → SUCCESS
其他等待、处理中、异常、未知状态 → WARNING

Task 4:增加背景和矢量图标

Task 5:把顶部布局改为整行状态卡

Task 6:接入 Activity 并保持语音边界

statusView.setText(statusResId);
applyStatusPresentation(CookedFoodStatusPresentation.forStatus(statusResId));
if (lastStatusResId == statusResId) return;
// 后续沿用现有语音资源解析和播放。

Task 7:完整自动化验证与质量复核

Task 8:真机视觉与交互验收

Task 9:同步变更记录和计划状态

关键资源

语义背景强调色标题辅助说明
INFO#EAF5FF#3197D6#246B9A#5C7280
WARNING#FFF7E8#F5A12B#A85B00#6F6252
SUCCESS#EDF9F0#38B862#287A43#5F7164

验证命令

JAVA_HOME=$(/usr/libexec/java_home -v 1.8) bash gradlew \
  :app:testDebugUnitTest :app:assembleDebug --console=plain

rg -n "cooked_food_current_product|currentProductView|cooked_food_selected_product_view" \
  app/src/main/java app/src/main/res

git diff --check
shasum -a 256 app/build/outputs/apk/debug/app-debug.apk

完成判定

  1. 当前商品视图和引用全部移除。
  2. 所有状态唯一映射到蓝、橙、绿之一。
  3. 主提示、辅助说明、图标、背景和描边同步变化。
  4. 语音内容和触发边界不变。
  5. 全量测试、构建和静态检查通过。
  6. 变更记录已成对同步。
  7. 真机未验收时明确标为待验收,不宣称全面完成。