Commit Graph
48 Commits
Author SHA1 Message Date
lvmengandClaude Sonnet 4.6 e6cfc4dff2 重构:拆分 HomeActivity 职责,分层解耦串口与业务逻辑
- 新建 SerialEventListener:定义串口协议解析回调接口契约
- 新建 SerialProtocolParser:迁移全部协议解析逻辑(拼包、12种命令分发、重量解析),无 Android 依赖,可单元测试
- 新建 SerialViewModel:管理串口生命周期(open/close)、Channel 数据传递,暴露 weightFlow / tempCtrlEventFlow / deviceStatusRefreshFlow
- 扩展 HomeViewModel:迁入定时任务(保存货架数据、刷新过期状态),改用 viewModelScope 管理,新增 deviceName 属性与 overdueUpdateFlow
- 精简 HomeActivity:从 835 行削减至 255 行,仅保留 UI 协调职责,所有串口与业务逻辑由 ViewModel 层处理

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 13:41:01 +08:00
lvmengandClaude Sonnet 4.6 85903eb646 重构 HomeActivity:修复多项稳定性与架构问题
架构优化:
- 新增 HomeViewModel,将 companion object 中的共享状态(shelfItems、
  weightMap、selectedShelfIndex、temperatureC、humidity)迁移至 ViewModel,
  消除 Activity 重建时的状态残留与全局状态污染问题

协程修复:
- repeatOnLifecycle(CREATED) 改为 STARTED,确保 Flow 收集与 UI 可见性
  生命周期对齐,进入后台时自动停止订阅
- 串口数据接收改用 Channel<String> + 单一消费协程,替代多 launch 并发模式,
  彻底消除 StringBuilder(serialReader)的并发竞争问题

稳定性修复:
- 修复 tipDialog 从未赋值导致 Dialog 功能失效及 onDestroy 窗口泄漏问题
- 修复 weightHex.toInt() 十进制解析错误,改为 toIntOrNull(16) 并添加兜底
- 修复 updateOverdueState 按索引访问接口数据导致的越界风险,
  改为按 deviceNo 精确匹配,同时修正交叉排列导致的状态串位问题
- 废弃 API getSerializableExtra 替换为版本分支兼容写法(minSdk 25+)

依赖升级:
- androidx.core-ktx 1.10.1 → 1.12.0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 11:45:44 +08:00
mazengfei 11e6123cc9 隐藏温湿度 2026-03-10 18:06:23 +08:00
lvmeng 14d8064b13 优化 2026-02-05 14:50:33 +08:00
mazengfei 8006b0d077 优化 2026-01-29 18:53:16 +08:00
mazengfei dbb7ccf8c7 优化 2026-01-15 11:37:37 +08:00
lvmeng 3ff58641aa 优化 2026-01-13 09:29:30 +08:00
lvmeng 5d58cdc4cf 增加定时任务更新货柜数据过期状态 2026-01-13 09:27:41 +08:00
马增飞 9a222037ea 优化 2026-01-12 18:03:41 +08:00
lvmeng 247a332ff3 优化 2026-01-12 14:42:46 +08:00
mazengfei 2fe0381987 jks 2025-12-30 17:23:56 +08:00
lvmeng 7e32268a4c 优化 2025-12-30 16:59:56 +08:00
马增飞 5b0b98c8b8 优化 2025-12-30 16:28:35 +08:00
马增飞 aff3d5cc69 优化 2025-12-03 09:44:37 +08:00
马增飞 6d1b997145 优化 2025-11-26 16:00:19 +08:00
马增飞 ad669e421b 优化 2025-11-20 10:11:28 +08:00
lvmeng 119a69bbbc 优化 2025-11-19 08:31:40 +08:00
马增飞 096499cd65 优化并增加日志 2025-11-18 18:49:46 +08:00
lvmeng 79d14ca300 增加终端反馈 2025-11-18 16:29:38 +08:00
马增飞 f8eeb83c6f 优化 2025-11-17 16:27:00 +08:00
马增飞 99001fff2f 优化 2025-11-13 18:10:34 +08:00
马增飞 10059bf4f6 联调优化 2025-11-12 20:14:37 +08:00
马增飞 32ea2f1379 设备联调优化 2025-11-11 18:26:07 +08:00
lvmeng c20ce471cb 优化 2025-11-07 08:58:21 +08:00
马增飞 3366fc02e5 Merge remote-tracking branch 'origin/main'
# Conflicts:
#	app/src/main/java/com/shuwei/intelligent/shelves/InitActivity.kt
#	app/src/main/java/com/shuwei/intelligent/shelves/net/ApiService.kt
#	app/src/main/java/com/shuwei/intelligent/shelves/net/NetViewModel.kt
2025-11-06 19:32:30 +08:00
马增飞 647ec0dcb7 设备联调优化 2025-11-06 19:29:18 +08:00
lvmeng 61c9452295 开机启动页面修改 2025-09-26 15:58:40 +08:00
lvmeng a0737ebbc3 接口header配置修改 2025-09-18 19:22:20 +08:00
lvmeng a811d296d9 高度修改 2025-09-17 15:18:55 +08:00
lvmeng 9c2c5f073e 初始化功能调试,启动页面优化 2025-09-17 15:16:11 +08:00
lvmeng a355828bab 增加初始化功能 2025-09-11 16:09:07 +08:00
lvmeng e153f3e3b9 增加开机启动 2025-08-22 17:34:56 +08:00
lvmeng ca2041fe76 参数优化 2025-08-18 14:17:58 +08:00
lvmeng f8453c7d76 增加过期逻辑 2025-08-15 17:59:40 +08:00
lvmeng 2162ba0c9e 页面优化 2025-08-11 17:48:34 +08:00
马增飞 5b26e7e711 设备联调优化 2025-08-11 17:15:02 +08:00
lvmeng 0d99c4f22a 调试通过获取设备信息实时更新二级页面重量,首页和二级页面列表页增加空数据展示 2025-08-11 14:22:34 +08:00
马增飞 9e5ede4a8e 设备联调,接口参数优化 2025-08-08 17:48:07 +08:00
lvmeng 0b52dad0fe 串口数据长度优化 2025-08-08 15:08:26 +08:00
lvmeng 383c354f29 接口联调2 2025-08-08 14:54:11 +08:00
lvmeng 65199f4c70 接口联调 2025-08-08 13:34:18 +08:00
lvmeng eb66c2d2ff 优化数据读取异常问题 2025-08-07 19:32:04 +08:00
马增飞 e7e062ebcb 功能联调 2025-08-07 18:58:17 +08:00
lvmeng 4d91b9d338 适配优化 2025-08-07 13:01:26 +08:00
lvmeng c409621e28 功能优化,增加心跳数据处理 2025-08-07 11:07:04 +08:00
马增飞 005e7eae53 串口数据处理 2025-08-06 19:31:18 +08:00
lvmeng f0f89982be 代码提交 2025-08-06 17:19:04 +08:00
lvmeng 089eea015e Initial commit 2025-08-06 17:11:11 +08:00