diff --git a/docs/plans/INBOX.md b/docs/plans/INBOX.md index 382ef9f..cf3639d 100644 --- a/docs/plans/INBOX.md +++ b/docs/plans/INBOX.md @@ -1,27 +1,26 @@ -## [已处理] 2026-10-20 | K46-A 榜单/新剧/预约页支持下拉刷新与上拉加载(仅 App 端) +## [已处理] 2026-10-20 | K50-A 开屏页动画(FruitShorts 品牌呈现)+ 新图标接入校验(仅 App 端) **用户指令(2026-10-20,原文)**: -> 「榜单 新剧 预约页面都要下拉刷新 上拉加载功能」 +> 「1现在改下app 图标 要表现出来水果短剧 可以放一个果篮 里面有各种水果 要有视频元素 2还有开屏页 要有动画体现出水果短剧 FruitShorts」 -**口径(只改 Flutter,不动后端、不改接口;数据源仍是本地 `CatalogController.dramas`,客户端分页,不伪造接口)** +**当前进度(图标资源已由 Trae 生成并替换,不要覆盖)** +- 新图标:暖橙渐变底 + 编织果篮(橙子、苹果、葡萄)+ 白色圆形播放键; +- 已替换:`android/.../mipmap-*/ic_launcher.png`、`drawable-*/ic_launcher_foreground.png`、`drawable-*/splash_icon.png`、`assets/icon/fruitshorts.png`(1024)、`assets/icon/splash_mark.png`(512)、iOS `AppIcon.appiconset/*.png`; +- 自适应图标背景色 `values/colors.xml` 的 `ic_launcher_background` 已改为 `#FFF1E5`。 -1. 复用 K45-A 的 `AppPullToRefresh`(若 K45-A 尚未完成,先完成它)。 -2. 通用分页逻辑(抽到 `lib/core/widgets/paged_local_list.dart` 或页面内复用): - - 每页 20 条,`visible = all.take(pageCount * 20)`; - - 滚动到距底 ≤200 时自动加载下一页:`pageCount++`,底部先显示 20px 主题色转圈(≥300ms,避免闪烁),加载完若已到底显示「没有更多了」(新增 l10n `noMore`:没有更多了 / No more / Tidak ada lagi),Key `-no-more`; - - 下拉刷新:`catalog.refresh()`(静默)后 `pageCount = 1`,保持当前滚动位置回到顶部; - - 刷新中/加载中防重复触发。 -3. 榜单页:`AppPullToRefresh` 包裹整页滚动(三强 + 第 4 名起列表),第 4 名起列表使用上述分页;底部加载态 Key `ranking-load-more`。 -4. 新剧页: - - `AppPullToRefresh` 包裹; - - 「今日首映」取自第一页第一条;「更多新剧」横滑区保留前 12 条; - - 其下新增「全部新剧」双列网格(复用 `DramaGrid`),使用上述分页;底部 Key `new-releases-load-more`。 -5. 预约页:`AppPullToRefresh` 包裹(下拉调用 `catalog.refresh()`),空态仍为票根卡;无列表时不显示加载更多。 -6. 三页滚动体统一 `AlwaysScrollableScrollPhysics`,空列表/短列表也能下拉。 +**本次只做开屏动画(`lib/pages/splash/splash_page.dart`)** +1. 背景改为深暖色 `#100C0A`(与原生 `splash_background` 一致,避免原生开屏 → Flutter 白闪);状态栏内容浅色。 +2. 动画(总时长约 1200ms,`AnimationController` + CurvedAnimation): + - 0–500ms:`splash_mark.png` 从 0.86 缩放到 1.0,opacity 0→1(`Curves.easeOutBack`),画布 96×96、圆角 24、带柔光(主色 0x33FF7A1A 径向渐变 + blur 40); + - 150–650ms:品牌名 `FruitShorts`(28 号 w900 白色,Outfit)从下方 12px 滑入 + 淡入;Key `splash-brand`; + - 300–800ms:中文标语「水果短剧」(13 号 white70,字距 4),Key `splash-tagline`; + - 500–1000ms:底部 22×22 主题色 `CircularProgressIndicator`(Key `splash-loading`)淡入,保持现有加载语义; + - 可选:背景两团极淡暖色光斑做缓慢呼吸(4s 循环,透明度 ≤0.08)。 +3. 页面 Key `splash-screen` 保留;不使用第三方动画库;动画不可无限阻塞首帧,`HomePage` 数据就绪后正常替换。 +4. 不修改图标 PNG 与 colors.xml;如发现自适应图标前景比例异常,只允许调整 `ic_launcher.xml` 的 inset(16% → 20%),不改图。 **测试/门禁** -- 榜单/新剧:首屏 20 条,滚到底出现加载态并追加到 40 条;全部加载完显示 `-no-more`;下拉刷新后回到 20 条; -- 预约页:下拉触发 refresh,不出现加载更多; +- 新增:`splash-brand`、`splash-tagline`、`splash-loading` 存在;动画推进 1200ms 后 opacity 均为 1; - `dart analyze lib test` 零告警 + `flutter test` 全过 + `flutter build apk --debug`。 -**流程**:从 `develop` 拉 `feature/flutter-k46-paged-pages`;作者 `Zhou Weidong <502333560@qq.com>`;`--no-ff` 合回 develop 并 push;PROGRESS 留痕;真机验收由用户执行。 +**流程**:从 `develop` 拉 `feature/flutter-k50-splash-animation`;作者 `Zhou Weidong <502333560@qq.com>`;`--no-ff` 合回 develop 并 push;PROGRESS 留痕;真机验收由用户执行(安装后看桌面图标 + 开屏动画)。 diff --git a/docs/plans/PROGRESS.md b/docs/plans/PROGRESS.md index fbc927c..ab9c083 100644 --- a/docs/plans/PROGRESS.md +++ b/docs/plans/PROGRESS.md @@ -21701,6 +21701,37 @@ Running Gradle task 'assembleDebug'... 解读:静态检查零告警,456 条测试全部通过,debug APK 构建成功。真机长按加速效果由用户验收。 +## 2026-10-20 ReelShort:K50-A 品牌开屏动画 + +- 前置状态:K48-A、弧线方向修正与 K49-A 均已合并,develop 合并提交 `499e42b`。 +- 分支:`feature/flutter-k50-splash-animation` +- 功能提交:`15570f1 feat(flutter): 重做品牌开屏动画` +- develop 合并提交:`da78d87 merge: 合并 K50 品牌开屏动画`,已推送。 +- 开屏背景改为 `#100C0A`,状态栏使用浅色图标;使用 1200ms `AnimationController` 分段呈现 Logo、FruitShorts、中文标语与加载圈。 +- Logo 使用 96×96、圆角 24、暖橙径向柔光和 40px blur,从 0.86 缩放到 1.0;`FruitShorts` 为 28 号 w900 Outfit 白字并上滑淡入;「水果短剧」为 13 号 white70、字距 4;底部加载圈 22×22 主题色。 +- `splash-screen`、`splash-brand`、`splash-tagline`、`splash-loading` Key 齐备,首页数据就绪后仍由现有 HomePage 门控替换。 +- Trae 提供的图标 PNG、`colors.xml` 与 iOS AppIcon 资源均未覆盖、未纳入本次提交;debug 构建已使用当前本地资源完成接入校验。 + +测试:新增背景色、浅色状态栏、三个品牌 Key 及 1200ms 后 Logo/品牌/标语/加载圈 opacity 均为 1 的断言。全量测试增至 457 条。 + +门禁原始输出: + +```text +$ dart analyze lib test +Analyzing 2 items... +No issues found! (ran in 2.5s) + +$ flutter test +00:44 +457: All tests passed! + +$ flutter build apk --debug +Running Gradle task 'assembleDebug'... + 8.5s +✓ Built build/app/outputs/flutter-apk/app-debug.apk +``` + +解读:静态检查零告警,457 条测试全部通过,debug APK 构建成功。桌面图标和开屏动画由用户安装真机验收。 + ## 2026-10-20 ReelShort:详情页顶部圆形按钮统一修正 - 前置状态:K40-B 评论入口登录闸已合并,合并提交 `230f16a`。