红外感应控制弹框实施计划

目标:把高级设置中的单一“去掉辅助餐盘识别”操作改为统一的红外感应设置弹框,支持打开、关闭及两个最近成功操作时间。

架构:AuxiliaryTrayRecognitionController 负责两条硬件命令,InfraredControlDialog 负责展示与回调,SetActivity 负责确认、异步发送、时间落库和日志。

文件范围

Task 1:命令和时间格式测试

  1. 断言打开命令为 3E5343414E30363031303035813C,关闭命令为 3E5343414E30363030303035803C,两条命令均为14字节。
  2. 断言时间戳0显示“暂无记录”,有效时间按 yyyy-MM-dd HH:mm:ss 展示。
  3. 先运行测试并确认新增接口不存在导致失败。

Task 2:命令、存储与弹框

  1. 硬件控制器增加 OPEN、CLOSE 操作和统一发送入口。
  2. MmkvUtils 增加 Long 编解码支持。
  3. 增加最近打开、最近关闭两个毫秒时间戳配置键。
  4. 弹框显示两个时间和打开、关闭、取消操作;发送期间同时禁用两个操作按钮。
  5. 运行定向测试并确认通过。

Task 3:高级设置接入

  1. 将旧入口改为“红外感应设置”。
  2. 打开、关闭分别二次确认,并在工作线程发送。
  3. 只有串口写入成功才更新对应时间,失败只记录日志。
  4. 记录操作类型、发送结果和时间;页面销毁时关闭操作弹框和二次确认框,不更新旧界面。

Task 4:验证与记录

JAVA_HOME="/Users/liang/Library/Java/JavaVirtualMachines/corretto-1.8.0_482/Contents/Home" ./gradlew --no-daemon :app:testDebugUnitTest
JAVA_HOME="/Users/liang/Library/Java/JavaVirtualMachines/corretto-1.8.0_482/Contents/Home" ./gradlew --no-daemon :app:assembleDebug
git diff --check

验证后更新同名 Markdown + HTML 变更记录。按协作边界不暂存、不提交、不推送、不切换分支。

Task 5:弹框视觉调整(2026-07-31)

  1. 弹框宽度由 620dp 调整为 760dp,内容区左右内边距调整为 56dp
  2. 打开、关闭按钮继续等宽布局,高度调整为 60dp
  3. 底部取消按钮调整为 320dp × 60dp,复用项目现有描边取消按钮背景和蓝色粗体文字。
  4. 重新执行布局 XML 检查、完整本地单元测试和 JDK 8 Debug 构建。