 mazengfeiandClaude Fable 5
|
03e6c9a6bb
|
feat(log): 增加日志定期清理机制,防止长期运行日志无限累加
- FileLogger 新增过期清理(保留7天)及单文件100MB写入上限
- CrashHandler 激活崩溃日志清理并补充异常保护
- App 启动清理 + 运行中每24小时定时清理,覆盖设备长期不断电场景
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-08-31 14:57:32 +08:00 |
|
mazengfei
|
c77c32fde1
|
refactor(model): 删除已废弃的分页响应包装类PageData
- 移除PageData数据类及其相关注释
- 精简代码库,减少不必要的数据封装
- 为后续分页功能重构做好准备
- 保持代码结构清晰,提升可维护性
|
2026-08-09 17:59:22 +08:00 |
|
mazengfei
|
dec5ecc100
|
refactor(api): 优化净菜包和餐品净菜包接口返回结构
- 移除净菜包和餐品净菜包接口中分页包装PageData,接口直接返回列表数组
- 修改相关调用处,取消对PageData的类型转换,直接处理列表数据
- 清理无用的PageData导入语句
- 保持接口功能和调用逻辑一致,提升代码简洁性和易维护性
|
2026-08-09 17:59:04 +08:00 |
|
mazengfei
|
5dc0bb2ec5
|
feat(model): 添加分页响应包装和分页请求体数据类
- 新增 PageData 泛型数据类,封装分页响应数据结构
- 增加 list、total、pageNum、pageSize 四个分页字段注释说明
- 新增 PageOptionsReq 数据类,用于分页请求参数封装
- pageNum、pageSize 必填,keyword 用于搜索或列表返回
- 适配净菜包及餐品净菜包下拉接口请求需求
|
2026-08-09 17:42:10 +08:00 |
|
mazengfei
|
c3682d1ed3
|
refactor(api): 更新净菜包和餐品净菜包接口支持分页请求
- 使用 POST 请求和 JSON Body 替换 GET 请求,支持分页参数传递
- 更新接口返回类型为分页结构 PageData
- 在对应数据模型中新增分页请求参数类 PageOptionsReq 引入
- 增加 CleanPackageOption 和 MealPackageOption 模型字段以支持新需求
- 调整 NetViewModelV2 中调用接口逻辑,传递分页参数
- 修改 ShelfV2Activity 中数据处理逻辑,适配分页返回数据结构
- 更新全局常量 PROD_BASE_URL 地址
|
2026-08-09 17:07:13 +08:00 |
|
lvmeng
|
e902f2869f
|
fix(home): 修复行列数量赋值错误问题
- 纠正了 rows 和 columns 变量的赋值逻辑
- 将 rows 正确赋值为 cabinet.horizontalRows
- 将 columns 正确赋值为 cabinet.verticalCount
- 修正了因后端返回数据结构导致的显示错误
|
2026-06-26 09:27:50 +08:00 |
|
 lvmengandClaude Opus 4.7
|
867cbb77be
|
refactor(home): 用FlexboxLayoutManager替换GridLayoutManager,支持动态行列布局
FlexboxLayoutManager(COLUMN+WRAP)天然列优先排列,数据无需重排。
item宽高在拿到接口行列数后直接计算,适配任意rows×cols配置。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-06-26 09:23:10 +08:00 |
|
mazengfei
|
8aaba07cb6
|
perf(home): 调整货架商品同步到服务器的时间间隔
- 将定时任务的执行间隔从5秒调整为2分钟
- 保持初始延迟时间不变(10秒)
- 优化服务器同步频率以减少资源消耗
|
2026-06-04 18:10:17 +08:00 |
|
mazengfei
|
4f1a9dd0a1
|
refactor(home): 重构货架重量数据模型和显示逻辑
- 将实际重量计算统一到weight字段,移除actualQty和totalWeightG字段
- 修改HomeV2Activity中的重量数据处理逻辑,统一转换为千克单位
- 更新ShelfV2Activity中重量显示格式,优化单位转换逻辑
- 调整ShelfV2Adapter中重量显示逻辑,统一使用weight字段进行展示
- 在日志记录中增加温度信息输出
- 移除废弃的条件判断逻辑,简化代码结构
|
2026-06-04 17:28:23 +08:00 |
|
lvmeng
|
694e20023a
|
refactor(layout): 优化网格布局工具和货架界面排序逻辑
- 新增 getLayoutManagerV2 方法用于创建垂直方向的网格布局管理器
- 修改 initListSortV2 方法支持动态行列参数控制排序逻辑
- 添加 submitListSortV2 方法用于提交时按槽位号排序
- 重构 HomeV2Activity 中的 UI 更新逻辑,支持动态行列配置
- 修复 RecyclerView 初始化时机问题,避免重复设置适配器
- 优化 ShelfV2Activity 中的清空操作,添加加载提示和自动关闭功能
- 完善槽位状态管理,支持空置和存放中状态标识
|
2026-06-04 14:32:08 +08:00 |
|
mazengfei
|
ac17fca325
|
fix(home): 解决格口数据更新和权重计算问题
- 将超时时间从5分钟调整为1分钟
- 优化格口数据匹配逻辑,提高查找效率
- 根据物品类型分别处理重量数据存储
- 添加JSON序列化支持用于调试日志
- 修复itemType字段类型不一致问题
- 优化重量显示计算逻辑并简化条件判断
- 修复代码格式化问题
|
2026-06-04 11:19:25 +08:00 |
|
lvmeng
|
4b8e5f84e6
|
refactor(net): 重构网络请求配置以支持动态域名切换
- 在 ApiServiceV2 中使用 @Url 注解实现动态 URL 配置
- 添加 DynamicBaseUrlInterceptor 拦截器用于实时替换基础 URL
- 更新环境切换对话框中的环境名称和对应的 URL 映射关系
- 修改 UrlConfig 中的常量为变量并包含完整的基础 URL 路径
- 在 HttpManager 中为两个 API 服务实例都添加动态域名拦截器
- 调整环境配置常量定义顺序以匹配新的环境切换逻辑
|
2026-06-03 16:30:05 +08:00 |
|
lvmeng
|
d6ba6cf527
|
feat(model): 更新货柜初始化结果和净菜包选项数据结构
- 在 CabinetInitResult 中添加 horizontalRows 和 verticalCount 字段
- 为 CleanPackageOption 和 MealPackageOption 添加 orderNo、foodId、needCount、needQtyKg 等字段
- 修改 CleanPackageOption 的 itemType 为 1,MealPackageOption 的 itemType 为 2
- 在 ShelfModelV2 中添加 cleanOrderNo 字段用于关联净菜订单号
- 更新 SyncItem 数据结构,添加 cleanOrderNo 字段
- 移除 HomeV2Activity 中的测试代码和硬编码逻辑
- 修改格口编号显示格式,补零显示两位数
- 调整定时任务执行频率,缩短同步间隔时间
|
2026-05-28 17:39:04 +08:00 |
|
lvmeng
|
4408acfca4
|
refactor(net): 注释掉设备令牌和配置相关功能
- 注释掉 getDeviceToken 方法及其相关逻辑
- 注释掉 getDeviceConfig 方法及其相关逻辑
- 注释掉 getAccessToken 方法及其相关逻辑
- 保留了 UiState 相关的状态流定义
- 维持了其他网络请求方法的正常功能
|
2026-05-27 19:55:02 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
b0739605b9
|
feat(v2): 新增 V2 货柜接口层、页面及数据同步功能
- 新增 ApiServiceV2 / NetViewModelV2 承载 v1.1 接口(初始化、净菜包/餐品净菜包选项、数据同步)
- 新增 CabinetRequestInterceptor 独立 Retrofit 实例
- 新增 HomeV2Activity + ShelfV2Activity 及对应布局
- 新增 ShelfV2Adapter / CleanPackageAdapter / MealPackageAdapter
- 新增 ShelfModelV2 / CabinetInitResult / SyncBody / SyncItem / CleanPackageOption / MealPackageOption 数据模型
- HomeV2Activity 实现 syncShelfGoodsToServer 定时同步逻辑
- GridLayoutTool 新增 initListSortV2 支持 ShelfModelV2 排序
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-27 19:54:06 +08:00 |
|
lvmeng
|
d524da1af3
|
refactor(net): 注释掉设备token和配置信息相关API接口
- 将getDeviceToken接口注释掉
- 将getDeviceInfo接口注释掉
- 将getAccessToken接口注释掉
- 保留了原有的文档注释
- 维持了文件结构完整性
|
2026-05-27 13:51:23 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
967d06ce1e
|
docs(serial): 更新 ScaleManager 类注释
- 同步典型用法为当前链式 start() 写法
- 职责说明补充 Channel 发送队列描述
- release() 说明补充"清空队列"
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-21 15:47:56 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
d5c6ec92d4
|
refactor(serial): sendCmd 改用 Channel 保证串口写入顺序
- 新增 sendChannel(无界 Channel)作为发送队列
- openPort() 启动单一消费者协程顺序消费队列,避免并发写串口
- sendCmd() 改为 trySend() 入队,不再每次创建新协程
- release() 关闭 Channel,确保消费者协程正常退出
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-21 15:02:15 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
7b28eb03d6
|
refactor(serial): 清理废弃类并复用现有工具函数
- 删除 SerialProtocolHandler(旧版协议解析器,已无任何引用)
- 删除 SerialFrameParser(仅被 SerialProtocolHandler 使用,随其废弃)
- ScaleFrameParser.parseFrame 改用项目已有的 String.hexToBytes(),移除重复的私有 hexToByteArray()
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-21 15:00:08 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
4d545ceb46
|
refactor(serial): 将 SerialPortManager 合并到 ScaleManager
- 删除 SerialPortManager,串口生命周期(open/startReceive/release)内嵌到 ScaleManager
- ScaleManager 改为 object 单例,去除 .instance 调用
- init() 简化为只接收 activateCode,去除 deviceId + activateMap 查表逻辑
- 新增 start(preHook) 方法合并 open + startReceive,支持链式调用到末尾
- BaseActivity.sendCmd 改为直接调用 ScaleManager.sendCmd
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-05-21 14:59:19 +08:00 |
|
 mazengfeiandClaude Sonnet 4.6
|
0eede1059c
|
feat(serial): 封装 ScaleManager 替换现有秤功能逻辑
新增 SDK 核心类:
- ScaleProtocolConstants:协议常量(命令字节、帧偏移)
- ScaleFrameParser:分片拼装、帧解析、BCD重量解析(修复旧代码 hex 误用问题)
- ScaleFrame / ScaleWeight / HeartbeatData / StatusData:数据模型
- ScaleManager:单例入口,支持链式回调注册、自动应答、指令构建
- ScaleFrameParserTest:基于实际抓包数据的单元测试
业务层替换:
- HomeActivity:移除 SerialProtocolHandler/SerialFrameParser,改用 ScaleManager 回调
- BaseActivity:sendCmd() 保持调用 SerialPortManager,与 ScaleManager.sendAction 独立
- ShelfActivity:秤置零、获取状态指令改用 ScaleManager 构建方法
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
|
2026-05-21 13:54:02 +08:00 |
|
lvmeng
|
8145eb588b
|
refactor(serial): 将串口配置常量重命名为大写格式
- 将 portName 常量重命名为 PORT_NAME
- 将 baudRate 常量重命名为 BAUD_RATE
- 更新代码中对这些常量的引用以使用新的命名约定
- 保持串口通信功能完全不变
|
2026-05-21 09:01:27 +08:00 |
|
mazengfei
|
c91d5656aa
|
修改旧版设备秤数量导致数据显示不准的问题
|
2026-05-20 16:50:53 +08:00 |
|
mazengfei
|
532b22a5c6
|
设备支持3列显示,统一处理显示和提交数据顺序
|
2026-05-20 15:36:28 +08:00 |
|
mazengfei
|
e9d04bfb70
|
优化启动页面样式
|
2026-04-28 16:52:54 +08:00 |
|
mazengfei
|
afba5220b3
|
首页设置禁止返回按钮
|
2026-04-28 16:41:21 +08:00 |
|
lvmeng
|
4ace12c6c7
|
style(ui): 调整加载动画尺寸并替换为矢量资源
- 将加载动画ImageView尺寸从160dp调整为120dp
- 替换loading_spinner为新的loading矢量资源
- 添加loading.xml矢量动画资源文件
- 注释掉HomeActivity中的临时报告对话框逻辑
- 简化HomeActivity中的RespData类型转换代码
|
2026-04-28 15:37:47 +08:00 |
|
mazengfei
|
ee36869003
|
优化
|
2026-04-07 17:19:12 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
c23c215941
|
fix: 修复 noDataWatchdogTask 潜在的内存泄漏问题
在 Runnable 中添加生命周期检查,防止 Activity 销毁后任务继续执行。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-01 17:58:22 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
3d67dd2c2d
|
refactor: 优化货架列表转换逻辑并支持奇数长度处理
- 移除 subList 创建,直接通过索引访问元素
- 修复奇数长度列表的处理逻辑
- 保持单次循环,提升性能
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-01 17:53:00 +08:00 |
|
 mazengfeiandClaude Sonnet 4.6
|
133f309d4b
|
refactor: 统一时钟管理并优化状态栏显示逻辑
- 在 BaseActivity 中实现统一的时钟管理机制,避免各子类重复实现
- LogActivity 和 ShelfActivity 覆写 onClockTick() 自定义状态栏显示
- HomeActivity 移除重复的时间更新逻辑,启用右侧状态栏菜单
- 提取协议常量到 ProtocolConstants,提高代码可维护性
- 优化开锁逻辑判断,改为基于 deviceId 的动态判断
- 新增右侧状态栏弹出菜单布局文件
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-01 17:07:41 +08:00 |
|
 mazengfeiandClaude Sonnet 4.6
|
3e5c7c6caa
|
refactor(HomeActivity): 修复内存泄漏并优化错误处理
1. 修复内存泄漏问题
- 在 onDestroy 中清理所有 Handler 回调
- 在 onDestroy 中释放 Dialog 引用
2. 增强类型安全
- updateUI 中增加类型检查和日志
- updateOverdueState 中增加完整的类型检查
3. 优化串口异常处理
- 串口数据处理异常时向用户提示
4. 消除代码重复
- 删除冗余的 saveShelfGoodsList 方法
- 定时任务直接调用 syncShelfGoodsToServer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-01 14:19:45 +08:00 |
|
 mazengfeiandClaude Sonnet 4.6
|
04fe3ec2c1
|
refactor: 全面重构 HomeActivity 架构并修复多项 Bug
- 新增 SerialProtocolHandler 类,将串口协议解析逻辑从 HomeActivity 剥离
- ProtocolConstants 补充命令码常量(CMD_*)及帧解析偏移常量
- 修复 NetViewModel.getDeviceConfig 更新错误 StateFlow 的 Bug
- 修复 getWeightInfo 中 toInt() 整数溢出崩溃风险,改用 toLongOrNull(16)
- 升级废弃的 getSerializableExtra,使用 Build.VERSION.SDK_INT 版本分支
- BaseActivity 提取 onUserInactive() 虚方法,消除对子类 HomeActivity 的直接引用
- 修复 BaseActivity 中错误的 LIGHT_OPEN/CLOSE 导入(改从 ProtocolConstants 导入)
- repeatOnLifecycle 由 CREATED 改为 STARTED,避免 UI 不可见时无效更新
- updateOverdueState 从回调风格改为 StateFlow,与项目其他接口保持一致
- 提取 syncShelfGoodsToServer() 消除重复的 ShelfBody 构建逻辑
- 清理 NetViewModel 和 BaseActivity 中大段注释死代码
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-01 11:26:05 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
9a795b9710
|
feat(HomeActivity): 新增串口无数据超时提示弹窗
超过5分钟未收到串口数据时,自动弹窗提示用户考虑断电重启设备;
收到新数据后自动关闭弹窗并重置计时。
同步提交串口协议常量(ProtocolConstants)与帧解析器(SerialFrameParser)重构代码。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-01 10:18:00 +08:00 |
|
mazengfei
|
fff6a2a3b3
|
配置生产域名
|
2026-03-31 19:16:56 +08:00 |
|
lvmeng
|
3b79f6d6aa
|
feat(config): 实现应用基础URL配置管理与环境切换功能
- 引入GlobalData对象统一管理应用基础URL配置
- 添加TEST/UAT/PROD三套环境切换弹窗功能
- 在BaseActivity中集成双击右上角状态栏显示环境切换对话框
- 将网络请求配置从App.configUrl迁移至GlobalData.appBaseUrl
- 扩展SpTool工具类支持baseUrl本地存储
- 增加HTTP连接和写入超时时间至30秒
- 更新构建配置启用BuildConfig支持
- 添加环境切换相关UI资源文件和样式定义
|
2026-03-31 14:06:04 +08:00 |
|
lvmeng
|
76b67b545d
|
Merge remote-tracking branch 'origin/dev_优化_基于分支代码备份'
|
2026-03-31 10:58:32 +08:00 |
|
lvmeng
|
3bd60990b9
|
Revert "重构 HomeActivity:修复多项稳定性与架构问题"
This reverts commit 85903eb646.
|
2026-03-31 10:57:46 +08:00 |
|
lvmeng
|
a116c4fc6c
|
Revert "重构:拆分 HomeActivity 职责,分层解耦串口与业务逻辑"
This reverts commit e6cfc4dff2.
|
2026-03-31 10:57:40 +08:00 |
|
mazengfei
|
40cd27fa7b
|
增加左上角点击关闭页面,增加启动网络检测和连接功能,删除手机端测试布局;
|
2026-03-30 11:18:11 +08:00 |
|
 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 |
|