472 Commits

Author SHA1 Message Date
xfy
313ebe1eaa release: v1.5.0 v1.5.0 2026-07-24 13:51:55 +08:00
xfy
214a4364bf fix(ui): place composeTraceEndSection after CalendarMonthPage composition completes 2026-07-24 13:35:28 +08:00
xfy
ac186ed49a perf(ui): defer translationY and alpha to graphicsLayer draw phase during animations 2026-07-24 13:34:42 +08:00
xfy
fc2f2065df perf(core): offload LunarCache precomputing and batch calculation to Dispatchers.Default 2026-07-24 13:34:02 +08:00
xfy
1b2fcfe248 fix(core): recycle intermediate bitmap in PhotoProcessor.loadSampled to prevent memory leak 2026-07-24 13:33:35 +08:00
xfy
7bf16dfe5a feat(ui): 重新设计开放源代码许可页面,集成 M3 Expressive 设计与弹性动画 2026-07-24 13:30:55 +08:00
xfy
4f6dc2f36a refactor(ui): 补全开放源代码许可依赖项并优化页面组件 2026-07-24 13:28:48 +08:00
xfy
adc149c462 fix(ui): eliminate year header layout jitter when showing this year button 2026-07-24 13:20:56 +08:00
xfy
0703be68b4 fix(ui): shift year view grid upwards to make room for bottom FAB 2026-07-24 13:20:08 +08:00
xfy
13360029e1 fix(ui): animate FAB upward in year view to avoid obscuring october mini month 2026-07-24 13:18:25 +08:00
xfy
c80ad488c6 fix(ui): remove duplicate lunar year text in YearHeader 2026-07-24 11:47:20 +08:00
xfy
fd7f79c3d3 refactor(ui): optimize year view performance, animations, and layout 2026-07-24 11:45:35 +08:00
xfy
d7406ef652 fix(shift): 调班设置迷你月历重排起点角标显示班/休状态(起·班/起·休) 2026-07-24 11:36:55 +08:00
xfy
dfe7b5a6c3 refactor(ui): 优化首页左下角 FAB 浮动菜单视觉样式、动画与返回键拦截 2026-07-24 11:34:15 +08:00
xfy
94a4ba1e2a fix(date-recorder): enforce layer-level graphicsLayer RenderNode clip to retain rounded corners during shared element transition 2026-07-24 11:29:17 +08:00
xfy
d40c6d59b3 fix(date-recorder): preserve rounded corners during shared element view mode transition 2026-07-24 11:27:39 +08:00
xfy
1248dff648 refactor(date-recorder): use SharedTransitionLayout for smooth view mode card morphing 2026-07-24 11:24:10 +08:00
xfy
2a3da75859 feat(date-recorder): add view mode switching card scale and layout transition animation 2026-07-24 11:21:30 +08:00
xfy
bff6e37908 fix(recorder): preserve record ID when editing photo of an existing record 2026-07-24 11:16:44 +08:00
xfy
c7aa611e52 feat(photo-editor): 照片主体增加圆角与精致悬浮阴影,且旋转时100%零黑边
- 直接在 Image 的 graphicsLayer 上配置 RoundedCornerShape(16.dp)、clip = true 和 shadowElevation = 6.dp,使圆角和阴影紧贴照片主体。
- 旋转时圆角与阴影随照片主体平滑一体旋转,外部无 Card 黑色底盒与死板边框,实现圆角 + 悬浮阴影 + 零黑边的体验。
2026-07-24 11:13:47 +08:00
xfy
f9e54f36fe refactor(photo-editor): 重构照片编辑旋转体验,干掉外框卡片实现全视口自适应无缝旋转
- 干掉 Card 容器:彻底移除了带 1.dp 灰色 Border、20.dp 圆角黑底及 4.dp 阴影的外层 Card 盒,解除照片被固定容器包裹旋转的视觉限制。
- 视口自适应包围盒算法:在 RotationGeometry 中新增 calculateLayoutSize 纯函数,按任意旋转角度动态计算照片 AABB 包围盒适配合理布局大小,保证 ContentScale.Fit 内部 0 留白 Padding 且 0 黑边。
- 重构 EditableImage:照片直接在全屏视口中心做平滑自适应旋转,手写 Canvas 与裁剪框精准挂载在稳态照片视觉 Bounds 上。
- 补充 RotationGeometryTest 针对 calculateLayoutSize 视口包围盒自适应的单元测试。
2026-07-24 11:12:19 +08:00
xfy
c39cecf343 fix(photo-editor): 修复旋转照片过程中的错位黑边
- 根因:isSwapped 原先直接基于目标旋转角度 state.rotationDegrees 判定,导致在旋转动画起始阶段(如 0° 向 90° 动画时)提前将布局 measure 尺寸转置,Fit 适配产生了内缩黑边 Padding。
- 修复:基于当前动画渲染角度 displayRotation.value 动态计算最近的 90° 基准角 (baseRotation),使布局尺寸转置与旋转动画平滑同步,彻底消除错位黑边。
- 测试:在 RotationGeometryTest 中补充 baseRotation、offsetDegrees、isSwapped 动态角度过渡断言。
2026-07-24 11:09:33 +08:00
xfy
b13e018503 release: v1.4.0 v1.4.0 2026-07-23 16:36:13 +08:00
xfy
e16b7e6587 perf: 优化日历翻页重组、农历批量查询与 Canvas 绘制内存分配 2026-07-23 16:30:27 +08:00
xfy
69bffd8d20 perf(core): 更新 Baseline Profile 与 Startup Profile AOT 编译规则文件 2026-07-23 16:27:05 +08:00
xfy
cc831f85cc feat(macrobenchmark): 更新 Baseline Profile 脚本覆盖年月视图穿梭与日期记录器 2026-07-23 16:04:02 +08:00
xfy
a0df5168f6 feat: 将日期记录器默认视图模式修改为网格 2026-07-23 15:57:41 +08:00
xfy
eadb8eb682 fix: add ProGuard dontwarn rule for sketch and fix deprecation warnings 2026-07-23 15:54:15 +08:00
xfy
19c9feb6de fix(ui): 修复滑动切换年份后再进年视图导致的页码联动错位 bug 2026-07-23 15:45:00 +08:00
xfy
e663ed5c8e fix(ui): 修复切换年月视图动画期间滑动导致的小月历错位 bug 2026-07-23 15:16:38 +08:00
xfy
53086f38e0 feat(ui): 基于 SharedTransitionLayout 重构年月视图穿梭缩放动画 2026-07-23 15:14:20 +08:00
xfy
de1e3178f6 fix(ui): 重构排序对话框布局,解决水平溢出挤压错位问题 2026-07-23 15:09:52 +08:00
xfy
80e4e5e86c fix(ui): 修复视图切换器平滑弹簧滑动动画与几何胶囊同心对齐 2026-07-23 15:08:46 +08:00
xfy
37cf5ffc4c feat(ui): 重构日期记录器界面,升级沉浸式时光画廊与三态视图模式 2026-07-23 15:06:42 +08:00
xfy
afd94604ad fix(photo-editor): 修复外层 Card 未按图片比例自适应导致的上下黑边 2026-07-23 15:03:58 +08:00
xfy
b7607eebd9 fix(photo-editor): 修复照片旋转二次叠加与黑边问题 2026-07-23 15:02:11 +08:00
xfy
0a6b9449a3 fix(ui): 修复照片编辑页错位、亮色主题统一与添加切换过渡动画
- 切换动画:ToolPanel 引入 AnimatedContent,在 旋转 / 裁剪 / 涂鸦 模式切换时平滑淡入滑动过渡
- 修复错位:将“撤销”按钮从限制宽高的 OutlinedIconButton 改为 OutlinedButton(contentPadding),解决“撤销”汉字被压缩竖向换行错位的问题
- 亮色主题统一:将界面配色调整为与鸭鸭日历应用一致的亮色 Material 3 Theme (MaterialTheme.colorScheme.surface / surfaceContainer)
2026-07-23 14:59:05 +08:00
xfy
088860861e feat(ui): 重新设计照片编辑界面 (PhotoEditorScreen)
- 采用暗黑模式专业工作室色调 (0xFF121316),提升照片编辑对比度与专注感
- 优化顶部 TopAppBar:重命名为“照片图层编辑”,包含返回与顶部“完成”快捷保存入口
- 优化模式切换栏:SegmentedButton 采用深色背景与选中高亮效果 (旋转 / 裁剪 / 涂鸦)
- 引入 Studio 视口卡片:圆角黑底边框视口 (RoundedCornerShape(20.dp)),带有处理中全屏 Loading 覆盖层
- 升级底部 ToolPanel 操作面板:
  - 旋转模式:双向 90° 旋转按钮 + 实时角度 Chip (如 90°)
  - 裁剪模式:确认裁剪区域与开启裁剪动作引导
  - 涂鸦模式:扩展 7 色绚丽画笔调色盘 (带选中勾选徽章) 与撤销笔触功能
- 完全兼容 editor_save 自动化测试 tag
2026-07-23 14:55:50 +08:00
xfy
57da898ed7 feat(ui): 重新设计记录编辑页面 (RecordEditScreen)
- 重构 RecordEditScreen 布局:新增 Hero 照片卡片,分组卡片化基本信息(标题与笔记)与日期设定(拍摄日期与关联日历)
- 引入图形化 OutlinedTextField(带图标、提示与标题快速清除)与交互式 DatePickerTile(带星期显示与清除关联)
- 优化顶部 TopAppBar 操作:添加顶部右上角“保存”快捷入口,配合底部固定“保存记录”主按钮
- 保持现有所有 testTag 兼容性
2026-07-23 14:54:01 +08:00
xfy
9ad9e39164 feat(ui): 重新设计日期记录器详情页并优化 Flow 实时监听
- 重构 RecordDetailScreen:新增 Hero 大图卡片(带全屏放大与涂鸦编辑快捷入口)、优雅标题 header、双列元信息卡片(带星期与日历关联状态)及格式化笔记卡片
- 优化底部操作栏:提供直观的编辑信息、涂鸦编辑与删除按扭
- ViewModel 变更:将 DateRecordDetailViewModel 从 single-snapshot first() 改为持续 collect,支持编辑返回后实时刷新数据
- 新增 DateRecordDetailViewModelTest 单元测试
2026-07-23 14:51:29 +08:00
xfy
c3510cde39 fix(recorder): 修复日期记录器多选模式下拖动多选中断问题 2026-07-23 14:42:49 +08:00
xfy
c6377d85f9 perf(ui): 优化多选与长按拖拽灵敏度,实现极速响应跨行连续多选 2026-07-23 14:39:27 +08:00
xfy
1700615508 fix(ui): 改用 PointerEventPass.Initial 监听底层手势,彻底解决模拟器与鼠标长按滑动多选失效问题 2026-07-23 14:35:41 +08:00
xfy
51a7a43b47 fix(ui): 移除子卡片事件拦截,恢复模拟器与触摸屏按住滑动多选手势 2026-07-23 14:33:56 +08:00
xfy
4ada46a549 feat(ui): 支持按住跨行滑动连续多选记录 2026-07-23 14:31:33 +08:00
xfy
b333c527da feat(ui): 为日期记录器网格添加元素删除与平移过渡动画 2026-07-23 14:28:01 +08:00
xfy
a2a631c141 feat(ui): 支持长按单个记录直接进入多选模式并选中 2026-07-23 14:26:19 +08:00
xfy
cfac607862 feat(ui): 为日期记录器多选模式添加过渡动画 2026-07-23 14:21:39 +08:00
xfy
b6146a29ae feat(photo-editor): 旋转图片时加平滑动画,裁剪填满零黑边
- 旋转角用 Animatable + tween(300ms) 平滑过渡,容器宽高比用
  animateFloatAsState 在目标稳态比例间过渡,消除硬切
- 黑边根因:旋转矩形填不满自身 AABB 的四角(45° 时黑色占 51%)。
  用户选「裁剪填满」方案:图片显示 rotatedBitmap(目标态),
  graphicsLayer 旋转 + coverScale 放大使四角覆盖容器 → 零黑边
- 提取旋转几何为纯函数 RotationGeometry(无 Android 依赖):
  stableAspect + coverScale,便于单测
- 回归测试 RotationGeometryTest 锁住「任意角度旋转图片四角
  覆盖容器四角」断言(maxViolation <= 1e-4),防止黑边回归
- 稳态(offset=0) scale=1 零裁剪;动画中(±45°) scale≈1.65 裁边缘

保存逻辑未变:PhotoProcessor.render 仍用 rotationDegrees 烘焙。
2026-07-22 18:31:48 +08:00
xfy
ca00839c9b docs(agents): 新增功能完成后跑 installDebug 的验证步骤
要求每写完一个功能跑一次 ./gradlew :app:installDebug 做冒烟安装,
并明确允许失败(无设备/模拟器等情况),非硬性 gate。
2026-07-22 18:05:41 +08:00