lvmeng
|
a958262dff
|
refactor(adapter): 新增 FoodListAdapter 合并 DishShowAdapter 与 SamplingAdapter
|
2026-04-29 15:16:59 +08:00 |
|
lvmeng
|
fb691c508d
|
refactor(entity): 重构数据实体类结构
- 将 FoodCollectionBean 从 objbox 包移动到 entity 包
- 在 DataBean.kt 中添加必要的 Android 图像处理相关导入
- 更新 VectorCollectionAdapter 中 FoodCollectionBean 的导入路径
- 更新 VectorCollectionFragment 中 FoodCollectionBean 的导入路径
- 重命名 DataBean.kt 为 FoodClassInfo.kt
- 移除 objbox 包中的重复 FoodCollectionBean 定义
|
2026-04-29 14:32:26 +08:00 |
|
lvmeng
|
8113c1d830
|
refactor(activity): 重构 BaseActivity 并优化相关页面
- 将 handler 改为 private,onDestroy 统一清理所有待执行任务
- 新增 protected postDelayed 方法供子类安全调度延时任务
- 将 DateTimeFormatter 提取为 companion object 常量,避免每秒重复创建
- setTitleBar 调用时自动显示标题栏
- 拆分 permissionCallback 为单权限和多权限独立回调,避免覆盖
- 将权限 launcher 改为 private,收敛访问入口
- 删除死代码 bgState/useBackground 及注释掉的旧代码
- InitActivity 倒计时改用私有 countdownHandler/countdownTask,解除对父类 handler 的依赖
- PrepareFoodActivity 替换 handler.postDelayed 为 BaseActivity.postDelayed
- FoodRecognizeActivity 持有弹窗引用防止重复打开
- BaseApp 使用 ScaleDeviceConfig.DEVICE_ID_2 替换硬编码设备 ID
|
2026-04-29 14:23:22 +08:00 |
|
lvmeng
|
db839fd596
|
style(ui): 更新设置页面和调料列表界面样式
- 调整设置页面布局间距和背景样式
- 更换箭头图标资源文件
- 将调料列表改为网格布局显示
- 优化调料项目卡片样式和尺寸
- 修改RecyclerView为4列网格布局
|
2026-04-29 10:10:57 +08:00 |
|
lvmeng
|
c2fd14cb6f
|
fix(ui): 修复界面文本显示和布局问题
- 将"餐品模式"统一修改为"菜品模式"
- 优化列表项布局结构,使用ConstraintLayout替代LinearLayout
- 调整间距属性,将marginTop改为layout_marginVertical
- 重新设置文本和图标的位置约束关系
- 添加多点击检测器用于快速跳转到主页面的临时功能
|
2026-04-29 09:10:32 +08:00 |
|
lvmeng
|
95895e6390
|
remove(dish): 删除菜品采样相关功能代码
- 移除 activity_dish_sampling.xml 布局文件及其全部UI组件
- 删除 DishSamplingActivity 类的所有业务逻辑代码
- 移除 BaseReq 基础请求类定义
- 将 loading 图片资源引用从 loading_spinner 更新为 loading
|
2026-04-29 08:48:12 +08:00 |
|
lvmeng
|
9a0b066490
|
refactor(ui): 对页面名称进行统一重命名
- 将 SelectDishActivity 重命名为 CookingModeActivity
- 将 PrepareCookActivity 重命名为 PrepareFoodActivity
- 将 SamplingListActivity 重命名为 SamplingModeActivity
- 更新 AndroidManifest.xml 中的活动声明
- 修改 DishListFragment 中的相关引用
- 注释掉 DishSamplingActivity 的完整实现代码
- 更新 DeviceConfigFragment 中的活动跳转逻辑
- 优化 CookingModeActivity 的视图绑定方式
- 更新相关导入包路径和类引用
|
2026-04-28 18:13:50 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
e8933fa578
|
fix(activity): 修复采样与菜品列表页异常场景的数据展示
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-28 17:46:19 +08:00 |
|
lvmeng
|
425f485b95
|
feat(ui): 将加载动画图标替换为 VectorDrawable,清理无用代码
|
2026-04-28 11:56:28 +08:00 |
|
lvmeng
|
264198463c
|
style(ui): 优化界面布局和颜色配置
- 修改 RecyclerView 高度设置以改进布局
- 更新颜色值,移除 alpha 通道简化颜色定义
- 重构调味配置界面布局,提升视觉效果
- 调整项目条目样式,包括文字颜色和字体粗细
- 更新分割线为 Material Divider 组件
- 统一调整文本颜色和大小以增强可读性
- 优化调味网格适配器中的文字颜色显示
- 调整布局间距和尺寸参数以改善界面美观
- 优化重量数据显示,增加小数位数控制功能
|
2026-04-28 10:49:10 +08:00 |
|
lvmeng
|
89fa681722
|
style(ui): 优化食材识别页面界面布局和交互体验
- 将内边距设置从统一padding改为水平和底部独立设置
- 增加卡片圆角大小从8dp到12dp提升视觉效果
- 为商品列表添加白色圆角背景提升美观性
- 调整滚动条垂直边距和顶部间距
- 将选中食材和重量显示区域包裹在圆角容器中
- 添加食材名称文本的最大行数和省略效果
- 统一按钮边距使用水平和垂直边距设置
- 动态调整RecyclerView父容器高度适配内容
- 注释掉食材搜索弹窗的默认商品名称传递
- 在食材搜索弹窗中预设测试数据便于调试
|
2026-04-28 09:25:31 +08:00 |
|
lvmeng
|
7a75e943db
|
fix(ui): 优化菜品制作界面布局和称重功能
- 调整 activity_prepare_cook.xml 中的边距和布局参数
- 更新称重显示文本为“称重:0g”并调整样式
- 在 BaseActivity 中将 loading 显示和隐藏操作移到主线程执行
- 为称重按钮添加防抖点击监听器和清零功能
- 在食物识别过程中添加加载提示和调试日志
- 修复食物识别流程中的加载框显示和隐藏逻辑
- 添加识别结果页面加载功能和取消判断
|
2026-04-27 14:32:03 +08:00 |
|
lvmeng
|
634f23a76a
|
style(ui): 优化食物识别界面布局和对话框标题
- 将食物照片区域包装在 CardView 中并调整样式
- 为食材列表容器添加滚动指示条功能
- 替换 RecyclerView 的滚动条为自定义指示条
- 更新多个对话框的标题文本以提高一致性
- 在准备烹饪界面添加重量显示文本
- 优化适配器数据更新和列表滚动逻辑
- 防止 StateFlow 重放导致的重复数据加载
- 添加新的滚动条绘制资源文件
|
2026-04-27 13:50:56 +08:00 |
|
lvmeng
|
b110cc97a0
|
refactor(collect): 重构食材采集功能界面和适配器
- 将按钮组件替换为TextView以支持更好的交互效果
- 添加selectableItemBackground实现点击反馈效果
- 重命名食材采样为食材采集保持术语一致性
- 替换FoodCollectionAdapter为VectorCollectionAdapter适配器
- 更新列表项布局从list_item_food_collection到list_item_vector_collection
- 添加FoodSearchAdapter适配器用于食材搜索功能
- 重构CollectFragment中的数据绑定和UI逻辑
- 修改相机容器布局位置优化界面结构
- 更新资源文件名和颜色定义提升代码可读性
- 调整保存按钮样式增强视觉效果
- 修改提示对话框内容精确表达功能意图
|
2026-04-27 10:21:37 +08:00 |
|
lvmeng
|
fda88fff33
|
feat(ui): 添加地址显示功能到调味品网格适配器
- 在 Seasoning22GridAdapter 中启用地址显示
- 在 Seasoning18GridAdapter 中启用地址显示
- 更新点击事件以显示地址对话框
- 为网格项目添加地址显示支持
|
2026-04-27 08:57:30 +08:00 |
|
lvmeng
|
c4fbf9dcd6
|
feat(ui): 优化通用弹窗样式并修复初始化清零逻辑
- 重构 CommonDialog 弹窗视觉效果:新增带阴影投影的背景、缩放淡入淡出动画、取消/确认按钮主次色区分
- 修复 setCancelable 调用位置错误(原写在 window.run 内不生效)
- 新增弹窗按钮圆角 ripple drawable,防止涟漪溢出圆角
- InitActivity 启动时对净材秤和熟食秤执行清零操作
- PrepareCookActivity 弹窗补充内容文案
- 修正 activity_dish_sampling.xml 中 MaterialDivider 颜色属性写法
|
2026-04-24 18:03:43 +08:00 |
|
lvmeng
|
a2f8fb903a
|
refactor(http): 移除旧的HTTP客户端配置并整合到网络管理器中
- 删除了废弃的HttpClient.kt文件中的自定义HTTP客户端实现
- 将基础URL配置从UrlConfig迁移到GlobalData统一管理
- 更新HttpManager使用GlobalData.appBaseUrl作为基础URL
- 移除了HttpUtil.kt文件中的遗留HTTP工具类
- 简化了网络层架构,移除重复的配置类
|
2026-04-24 17:23:27 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
13fc7c7e0f
|
fix(ui): 修复22格高宽比调整后列表高度显示不全
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-24 17:14:19 +08:00 |
|
lvmeng
|
fed161b088
|
style(adapter): 更新网格适配器高亮样式
- 将 setBackgroundColor 替换为 setBackgroundResource 使用形状资源
- 为 Seasoning18GridAdapter 和 Seasoning22GridAdapter 统一高亮样式
- 添加 shape_scale_cell_highlight.xml 定义圆角橙色背景
- 移除硬编码颜色值,提高样式可维护性
|
2026-04-24 16:23:15 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
594c551a98
|
fix(activity): 修复调料配置删除后子设备未同步问题
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-24 11:28:59 +08:00 |
|
lvmeng
|
617ccfb456
|
feat(dialog): 调料选择对话框增加滑动冲突处理和重量传递功能
- 修改 dialog_seasoning_select.xml 布局高度为 match_parent 并添加标题文本
- 调整 SmartRefreshLayout 高度限制并移除 RecyclerView 内边距
- 在 FoodRecognizeActivity 中新增 currentWeight 参数传递机制
- 移除 WeightUtil 监听器相关代码并初始化当前重量值
- 在 PrepareCookActivity 中传递当前重量到识别页面
- 从 SeasoningConfigFragment 和 SeasoningSelectDialog 中移除无用参数
- 添加 Window.Callback 触摸事件拦截解决 RecyclerView 滑动冲突
- 实现触摸点位置检测动态控制 BottomSheet 拖拽行为
|
2026-04-24 10:07:11 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
f3d57177b8
|
feat(activity): 制作/提交按钮增加二次确认弹窗,调整弹窗标题颜色及列表项背景属性
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-23 17:41:26 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
267628411a
|
fix(viewmodel): 修复切换 tab 返回后数据消失及 loading 不消失的问题
切换 tab 时重置对方的 StateFlow 状态为初始值,避免 repeatOnLifecycle
重启后 replay 残留状态导致 UI 异常覆盖或 loading 无法关闭
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-23 17:41:12 +08:00 |
|
lvmeng
|
58fb78c7bd
|
feat(activity): 新增已采集食材列表页,支持搜索、删除及空视图展示
|
2026-04-23 16:51:57 +08:00 |
|
lvmeng
|
9f0671410f
|
feat(ui): 将采集页红色主题图标统一替换为绿色
|
2026-04-23 14:39:49 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
0243fe0dc8
|
refactor(viewmodel): 将回调方式统一改为 StateFlow + UiState,消除竞态问题
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-23 14:01:24 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
df0580d68f
|
refactor(viewmodel): 统一 DbViewModel 初始化并拆分 DAO 结构
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-23 11:58:14 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
deab289747
|
refactor(rename): 将 AppRepository 重命名为 DbRepository,AppViewModel 重命名为 DbViewModel
- DatabaseRepository.kt → DbRepository.kt,类名 AppRepository → DbRepository
- AppViewModel.kt → DbViewModel.kt,类名 AppViewModel → DbViewModel
- VMFactory 构造参数与创建类型同步更新
- 所有引用文件(UI 层、Fragment、ViewModel 工厂)批量更新 import 与使用处
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-23 11:06:59 +08:00 |
|
lvmeng
|
debc7a0740
|
refactor(viewmodel): 封装调料槽位读写至 AppViewModel,消除页面直接调用 DAO 的情况
|
2026-04-23 10:54:59 +08:00 |
|
lvmeng
|
441cffe4da
|
fix(submit): 移除调料数据为空的检查限制
- 注释掉调味料数据为空时的验证逻辑
- 允许在没有调料信息的情况下继续提交流程
- 保持原有的数据转换和追加功能不变
|
2026-04-23 10:31:02 +08:00 |
|
lvmeng
|
3581975ab0
|
refactor(viewmodel): 新增 seasoningSlotState 替代 loadSeasoning,将 getSamplingList 迁移至 StateFlow
|
2026-04-23 10:29:17 +08:00 |
|
lvmeng
|
9e99e6ef6d
|
refactor(viewmodel): 将 searchFoodList/getCookFoodList 迁移至 StateFlow,DishListFragment 改用 combine 并行合并数据并修复分页本地数据混入问题
|
2026-04-23 09:54:34 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
16fe64e9fe
|
refactor(viewmodel): 修复 loadSeasoning 防重入缺陷并移除 BaseActivity 网络包装方法
- AppViewModel.loadSeasoning 用 Mutex 替换 isProcessing 标志位,避免异常时状态永久锁死
- 删除 BaseActivity 中 queryGoodsList / querySeasoningList 包装方法,减少隐式依赖
- FoodSearchDialog / SeasoningSearchDialog 改为直接调用 activity.netViewModel.xxx()
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-23 08:56:13 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
75830b9204
|
refactor(network): 引入 RemoteRepository 隔离网络层,AppRepository 支持调料槽位查询
- 新增 RemoteRepository,将 NetViewModel 中直接调用 apiService 的逻辑下沉至仓库层
- NetViewModel 改为依赖注入 RemoteRepository,不再直接接触 apiService
- AppRepository 构造函数增加 SeasoningSlotDao 参数,新增 hasSeasoningSlotConfig() 方法
- AppViewModel 新增 hasSeasoningSlotConfig() 方法,明确区分"调料数据"与"槽位配置"语义
- 同步更新 6 个 Activity 的 AppFactory 构造调用,传入 seasoningSlotDao
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-22 18:31:38 +08:00 |
|
lvmeng
|
0498501b33
|
style(ui): 统一界面组件样式并优化设置页面交互
- 为所有列表项和设置面板应用统一的白色圆角背景样式
- 为可点击区域添加波纹效果提升用户体验
- 修复布局文件中ID命名不规范的问题
- 在设置页面添加右上角功能按钮并实现跳转逻辑
- 导入页面跳转扩展函数支持快速导航到主秤配置页面
- 优化布局参数确保界面元素正确显示和交互响应
|
2026-04-22 17:35:26 +08:00 |
|
lvmeng
|
8c709a3f5f
|
fix(fragment): 修复 CollectFragment 首次打开相机预览不显示的问题
|
2026-04-22 17:09:33 +08:00 |
|
lvmeng
|
9ba6443f4f
|
refactor(setting): 重构设置页面界面和功能结构
- 将底部导航菜单替换为三个独立的功能卡片布局
- 添加餐品模式、调料区设置和食材采样功能入口
- 移除原有的Fragment容器和标签页切换逻辑
- 更新CollectFragment以使用新的SingleFragmentActivity架构
- 修改相机权限检查逻辑并添加权限拒绝提示对话框
- 简化DeviceConfigFragment和SeasoningConfigFragment的依赖导入
- 在设置页面添加当前模式显示和跳转功能
- 重构调料配置页面的日志记录和高亮逻辑
|
2026-04-22 14:55:09 +08:00 |
|
lvmeng
|
04e4efe1fc
|
feat(activity): 新增 SingleFragmentActivity 通用 Fragment 容器页
|
2026-04-22 13:39:52 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
bce9675b0f
|
feat(activity): SubmitFoodActivity 支持制作中菜品调料历史数据加载与新增叠加
- SeasoningWeightAdapter 改继承 BaseQuickAdapter
- item_seasoning_weight 左右间距改为 32dp
- isCooking=true 时从数据库查询 goodsList 并预填充调料历史数据
- refreshAdapterByName 叠加历史用量,修复新增用量覆盖历史数据问题
- 返回键拦截,弹窗提示保存数据
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-22 11:47:13 +08:00 |
|
lvmeng
|
f25108360b
|
feat(ui): CommonDialog 支持垂直3按钮布局(iOS风格)
|
2026-04-22 11:39:37 +08:00 |
|
lvmeng
|
4ec02ac2bc
|
feat(MasterScaleActivity): 添加秤名称显示功能
- 在UI界面上增加tvName文本视图用于显示秤的名称
- 当秤名称不为空时显示实际名称,否则显示默认值"-"
- 优化了秤信息展示的完整性,补充了名称字段的显示逻辑
|
2026-04-22 09:34:04 +08:00 |
|
lvmeng
|
97b357850c
|
refactor(layout): 优化布局尺寸计算逻辑并提取公共工具类
- 添加 SizeTool 工具类统一管理 Flexbox 布局尺寸计算
- 在 MasterScaleActivity 中使用 SizeTool 替代硬编码计算
- 在 SeasoningConfigFragment 中使用 SizeTool 重构尺寸计算
- 在 SlaveActivity 中应用统一的尺寸计算方法
- 更新 Seasoning18GridAdapter 和 Seasoning22GridAdapter 使用现代化布局参数设置
- 调整 fragment_seasoning_config.xml 中的边距和内边距数值
- 为布局文件添加 tools:itemCount 属性支持预览功能
|
2026-04-22 09:28:07 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
b6b5088107
|
feat(ui): 新增油盆配置区,子设备1调料名改为动态配置
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-21 18:18:22 +08:00 |
|
lvmeng
|
bbdebc0c9c
|
feat(activity): 新增同名调料用量聚合合并展示逻辑
- SubmitFoodActivity 新增 rawWeightMap 记录各秤槽位原始用量
- 每次秤数据更新后按 goodsName 聚合求和,同名调料只展示一条
- SeasoningWeightAdapter 改为按 goodsName 作为唯一标识匹配更新/移除
- SlaveActivity 简化高亮触发条件判断
|
2026-04-21 17:50:02 +08:00 |
|
lvmeng
|
0a90a8b368
|
feat(activity): 重构 SubmitFoodActivity 调料展示,改用子设备实时秤数据
|
2026-04-21 17:08:34 +08:00 |
|
lvmeng
|
07eb626e12
|
feat(layout): 更新秤数据列表项布局样式
- 将布局高度从120dp增加到340dp
- 调整布局方向为垂直排列并居中对齐
- 添加商品名称显示文本框
- 调整字体大小和颜色配置
- 修改权重布局为包裹内容模式
- 更新内边距设置以优化显示效果
|
2026-04-21 16:57:55 +08:00 |
|
lvmeng
|
736e4820dd
|
fix(fragment): 修复 triggerHighlight 因设备判断用 != 导致主设备秤误触发调料格子高亮
|
2026-04-21 16:52:23 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
3fc54d5f52
|
refactor(ui): 重构 Scale2VH 使用 XML 布局,优化秤总览界面样式
- list_type_scale2.xml 替换动态格子为 include list_item_scale22_row,Scale2VH 删除 makeScaleCell/updateScaleCell/makeCellText
- list_type_scale1.xml 布局调整为垂直居中,新增 tvName 展示调料名称
- list_type_scale18/22.xml 移除分割线
- SeasoningSelectDialog 搜索列表改为3列,扩充模拟调料数据
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-21 15:54:04 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
b16d7d19cd
|
feat(scale): 实现调料槽位配置持久化及主从设备数据同步
- 新增 SeasoningSlotEntity / SeasoningSlotDao,独立存储格子调料配置
- AppDatabase 升级至版本 8,添加 MIGRATION_7_8
- ScaleEvent 新增 TYPE_SEASONING_CONFIG 和 SlotConfig,用于主从同步
- SeasoningConfigFragment 选择调料后写 Room 并通过 wsClient 推送给子设备
- ScaleWebSocketClient 新增 sendToAllSlaves / sendToDevice / onDeviceConnected
- ScaleWebSocketServer 扩展 onMessage 支持接收主设备下发的配置事件
- ScaleServiceManager 暴露 sendSeasoningConfig / onSeasoningConfig;子设备连接时自动推送全量配置
- MasterScaleActivity 启动时从 Room 加载 slotNameMap,注入 ScaleData.name 展示调料名
- SlaveActivity 新增 slotNameMap 防止重量回调覆盖调料名;监听 onSeasoningConfig 写 Room 并刷新 adapter
- Adapter 新增 tvAddress 和 showAddress 参数,仅 MasterScaleActivity 显示秤地址行;tvName 空值统一显示"-"
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-21 15:27:28 +08:00 |
|
 lvmengandClaude Sonnet 4.6
|
a81e914b63
|
refactor(adapter): 合并 Scale18/22GridAdapter 为 Seasoning18/22GridAdapter,统一支持调料配置和秤总览双模式
- ScaleData 新增可空 name 字段,用于承载调料名称
- Seasoning18/22GridAdapter 改用 ScaleData,新增 showNameOnly 参数区分页面模式
- showNameOnly=true(调料配置):仅显示名称,无名称显示"-"
- showNameOnly=false(秤总览):显示名称+重量+状态,无名称显示秤地址编号
- update() 恢复差量更新逻辑,避免 submitList 动画期间点击失效
- MasterScaleActivity、SlaveActivity 改用新 Adapter,删除旧 Scale18/22GridAdapter
- 删除 Scale22GridActivity 及其布局和 Manifest 注册
- list_item_scale22_row.xml 中 tvAddr 重命名为 tvName
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
|
2026-04-21 11:59:59 +08:00 |
|