lvmeng
|
3757b851be
|
refactor(home): 移除旧版首页和货架相关界面及代码
- 删除 activity_home.xml 布局文件
- 删除 activity_shelf.xml 布局文件
- 删除 activity_shelf_v2.xml 布局文件
- 从 AndroidManifest.xml 中移除 HomeActivity 和 ShelfActivity 等旧页面声明
- 删除 ApiService.kt 网络接口文件
- 删除 ApiServiceV2.kt 网络接口文件
- 删除 CabinetInitResult.kt 数据模型文件
- 删除 CleanPackageAdapter.kt 适配器文件
- 删除 CleanPackageOption.kt 数据模型文件
- 删除 Constant.kt 常量定义文件
- 删除 DeviceConfigInfo.kt 数据模型文件
- 删除 DrawableExt.kt 扩展工具文件
- 删除 F2C.kt 温度转换工具文件
- 删除 GoodsModel.kt 数据模型文件
- 删除 GoodsRecord.kt 数据模型文件
- 删除 GridLayoutTool.kt 布局工具文件
- 删除 HexUtils.java 十六进制工具类
|
2026-06-30 11:27:29 +08:00 |
|
lvmeng
|
947afd06e8
|
fix(dialog): 修复Chip选择对话框的标题显示和布局问题
- 修改对话框确认按钮提示文本,使用动态标题变量替代固定文本
- 移除手动设置Chip的LayoutParams,改为直接使用addView方法
- 设置ChipGroup为多行显示以支持更多选项
- 调整布局文件中ChipGroup的宽度为wrap_content并居中对齐
- 添加水平和垂直间距属性以改善Chip排列效果
- 修正ShelfV3Activity中传递给对话框的标题文本格式
|
2026-06-26 16:43:45 +08:00 |
|
lvmeng
|
5412f0b6b9
|
feat(shelf): 更新货架界面和菜品分类功能
- 重命名tvFoodType为tvVegTypeName以统一命名规范
- 新增bg_pressed.xml选择器用于按钮按下效果
- 在ChipSelectDialog中添加必选验证和改进布局参数
- 扩展HomeV3Activity传递菜品名称和蔬菜类型信息
- 调整list_item_shelf_v3.xml布局尺寸和权重配置
- 新增tvFoodType显示菜品分类并调整字体间距
- 更新ShelfV3Activity处理菜品分类数据传递和显示
- 修改SlotModel数据结构支持蔬菜类型ID和名称字段
- 优化适配器中菜品分类文本显示逻辑和颜色设置
|
2026-06-26 16:24:53 +08:00 |
|
lvmeng
|
0e0c2fe47b
|
feat(shelf): 添加净菜毛菜搜索和分类选择功能
- 新增 tvFoodType TextView 显示食品分类
- 将搜索框可见性从 gone 改为 visible
- 添加 FoodItem 和 FoodType 数据模型
- 添加 SearchFoodRequest 请求模型
- 在 ApiServiceV3 中新增 searchFood 接口
- 在 NetViewModelV3 中新增 searchFood 方法
- 修改 PutSlotRequest 模型字段为可空类型并添加 vegTypeId
- 更新 HomeV3Activity 中行列计算逻辑
- 缩短商品数据同步间隔时间
- 修改 InitActivity 中的基础URL配置
- 将 PendingInboundAdapter 适配器改为使用 FoodItem 类型
- 在 ShelfV3Activity 中实现净菜分类选择对话框功能
- 添加 ChipSelectDialog 自定义对话框组件
- 添加 chip 相关的颜色资源文件
- 实现搜索功能替换原有的待入库查询逻辑
|
2026-06-26 14:57:07 +08:00 |
|
 lvmengandClaude Opus 4.7
|
84634f843d
|
refactor(home): 用FlexboxLayoutManager替换GridLayoutManager,支持动态行列布局
FlexboxLayoutManager(COLUMN+WRAP)天然列优先排列,数据无需重排。
item宽高在拿到接口行列数后直接计算,适配任意rows×cols配置。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-06-26 09:17:06 +08:00 |
|
lvmeng
|
419e08c0e0
|
fix(shelf): 解决货架模型重量数据同步问题
- 在HomeV3Activity中添加重量值赋值逻辑确保模型数据完整
- 临时注释PendingInboundItem中的重量赋值避免数据冲突
- 修复货架适配器数据更新时重量信息丢失的问题
|
2026-06-25 14:48:04 +08:00 |
|
lvmeng
|
70f4146509
|
fix(init): 移除测试设备号硬编码
- 注释掉测试用的固定设备号赋值代码
- 确保使用实际的设备唯一标识符获取逻辑
- 保留设备号获取的日志记录功能
|
2026-06-25 14:10:58 +08:00 |
|
lvmeng
|
45bd586e7a
|
refactor(model): 更新PendingInboundItem数据模型字段类型
- 将vegTypeId从Int类型改为Long?可空类型,默认值为null
- 将vegTypeName从String类型改为String?可空类型,默认值为null
- 将spec从String类型改为String?可空类型,默认值为null
- 所有修改的字段都设置了默认值以保持向后兼容性
|
2026-06-25 11:31:14 +08:00 |
|
lvmeng
|
a78eaf7233
|
feat(app): 集成V3货柜管理功能
- 将应用包名从com.shuwei.intelligent.shelves迁移至com.sw.scalefusion.shelf
- 更新AndroidManifest.xml中的Activity声明路径以匹配新包名
- 在InitActivity中同步更新包名引用及依赖导入
- 修改GridLayoutTool工具类适配V3货柜布局排序逻辑
- 新增ApiResponse和BaseRepository统一网络响应处理
- 添加V3 API服务定义支持毛菜柜/净菜柜功能
- 新增HomeV3Activity和ShelfV3Activity实现新版货柜界面
- 集成API文档定义的货柜初始化、入柜、同步重量等核心功能
- 添加SlotModel等数据模型支持V3货柜操作
- 更新ProtocolConstants增加设备类型映射配置
- 重构网络管理层实现V2/V3接口实例分离管理
|
2026-06-24 17:39:44 +08:00 |
|
lvmeng
|
694e20023a
|
refactor(layout): 优化网格布局工具和货架界面排序逻辑
- 新增 getLayoutManagerV2 方法用于创建垂直方向的网格布局管理器
- 修改 initListSortV2 方法支持动态行列参数控制排序逻辑
- 添加 submitListSortV2 方法用于提交时按槽位号排序
- 重构 HomeV2Activity 中的 UI 更新逻辑,支持动态行列配置
- 修复 RecyclerView 初始化时机问题,避免重复设置适配器
- 优化 ShelfV2Activity 中的清空操作,添加加载提示和自动关闭功能
- 完善槽位状态管理,支持空置和存放中状态标识
|
2026-06-04 14:32:08 +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 |
|
lvmeng
|
8145eb588b
|
refactor(serial): 将串口配置常量重命名为大写格式
- 将 portName 常量重命名为 PORT_NAME
- 将 baudRate 常量重命名为 BAUD_RATE
- 更新代码中对这些常量的引用以使用新的命名约定
- 保持串口通信功能完全不变
|
2026-05-21 09:01:27 +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 |
|
 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 |
|
 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 |
|
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 |
|
 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 |
|
lvmeng
|
14d8064b13
|
优化
|
2026-02-05 14:50:33 +08:00 |
|
lvmeng
|
3ff58641aa
|
优化
|
2026-01-13 09:29:30 +08:00 |
|
lvmeng
|
5d58cdc4cf
|
增加定时任务更新货柜数据过期状态
|
2026-01-13 09:27:41 +08:00 |
|
lvmeng
|
247a332ff3
|
优化
|
2026-01-12 14:42:46 +08:00 |
|
lvmeng
|
7e32268a4c
|
优化
|
2025-12-30 16:59:56 +08:00 |
|
lvmeng
|
119a69bbbc
|
优化
|
2025-11-19 08:31:40 +08:00 |
|
lvmeng
|
79d14ca300
|
增加终端反馈
|
2025-11-18 16:29:38 +08:00 |
|
lvmeng
|
c20ce471cb
|
优化
|
2025-11-07 08:58:21 +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 |
|
lvmeng
|
0d99c4f22a
|
调试通过获取设备信息实时更新二级页面重量,首页和二级页面列表页增加空数据展示
|
2025-08-11 14:22:34 +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 |
|
lvmeng
|
4d91b9d338
|
适配优化
|
2025-08-07 13:01:26 +08:00 |
|
lvmeng
|
c409621e28
|
功能优化,增加心跳数据处理
|
2025-08-07 11:07:04 +08:00 |
|
lvmeng
|
f0f89982be
|
代码提交
|
2025-08-06 17:19:04 +08:00 |
|
lvmeng
|
089eea015e
|
Initial commit
|
2025-08-06 17:11:11 +08:00 |
|