diff --git a/docs/plans/INBOX.md b/docs/plans/INBOX.md index 38f93d5..b0f2682 100644 --- a/docs/plans/INBOX.md +++ b/docs/plans/INBOX.md @@ -1,3 +1,32 @@ +## [已处理] 2026-10-20 | K33-C 首页 feed 精修:去弹幕/全屏观看、rail 对齐播放页、进度条可拖动、整集条跳播放页、纯黑底、刷新按钮(仅 App 端) + +**用户指令(2026-10-20,原文)**: +> 「弹幕和全屏观看不要 右侧的和播放页的保持一致进度条可以滑动 点击观看完整剧集直接跳转到播放页 而且整个页面怎么还有背景色顶部左侧三道横线改为刷新」 + +**口径(只改 Flutter,不动后端、不改接口)** + +1. 删除底部第一行:「弹幕」胶囊与「全屏观看」胶囊整块移除(含 `_DanmakuPill`、`_FullscreenPill` 与 l10n `danmaku` / `watchFullscreen` 两个 key)。 +2. 右侧互动栏与播放页完全一致: + - 从 `player_overlay_parts.dart` 抽出公共组件(建议 `lib/pages/player/widgets/interaction_rail.dart`),播放页与 feed 共用; + - 视觉:34×34 深色圆形底(`0x80000000`)IconButton、图标 24、下方 11 号 w600 白字、项间距 18; + - 顺序:收藏 / 评论 / 喜欢 / 分享;数量用 `formatInteractionCount`,无数据显示文字标签; + - Key:播放页保持 `player-rail-*`,feed 保持 `rail-save` / `rail-comments` / `rail-like` / `rail-share` 与 `rail-*-count`。 +3. 底部「观看完整剧集」条: + - 点击整条 → 打开全屏播放页(不是选集面板):`PlayerPage` 增加 `onOpenFullPlayer(Drama, Episode)`,home_view 里用现有 `logic.playDrama(context, drama, episodeId: episode.id)` 实现(会先取详情再进播放页); + - 底部 2px 橙色进度线改为可拖动:在进度线外侧提供 ≥20px 高的手势区(`onTapDown` + `onHorizontalDragStart/Update/End`),按横向比例 seek;`HomeFeedOverlay` 增加 `onScrubStart` / `onSeek(Duration)`,homeMode 分支接到 `logic.beginScrub` / `logic.seekTo`(当前激活的 video port)。 +4. 页面底色:首页 feed 必须纯黑——`_HomeTabsState._scaffold` 在 `logic.tab == 0` 时 `backgroundColor: Colors.black`(覆盖外层暖色渐变),其它 Tab 保持透明/暖色;视频仍 `BoxFit.cover`。 +5. 顶部左侧三道横线改为刷新:`Icons.refresh_rounded`,Key `home-feed-refresh`,tooltip 用 `l10n.retry`;点击触发 feed 重新加载——`PlayerPage` 增加 `onRefreshFeed` 回调,home_view 传 `catalog.load`(`HomePage` 把 `catalog.load` 透传给 `_HomeTabs`)。 +6. 其余结构不变:顶部三 tab(漫剧 / 真人剧 / 推荐)、系列信息行、标题、标签、作者声明、清屏逻辑、深色底栏、上下滑动切剧。 + +**测试/门禁** +- 更新测试:移除弹幕/全屏观看断言;新增 `home-feed-refresh` 存在并可点击、进度拖动调用 seek、点击整集条调用 onOpenFullPlayer、首页 Scaffold 背景为黑色; +- 播放页 rail 测试保持通过(共用组件后 Key 与样式不变); +- `dart analyze lib test` 零告警 + `flutter test` 全过 + `flutter build apk --debug`。 + +**流程**:从 `develop` 拉 `fix/flutter-k33-feed-polish`;作者 `Zhou Weidong <502333560@qq.com>`;`--no-ff` 合回 develop 并 push;PROGRESS 留痕;真机验收由用户执行。 + +--- + ## [已处理] 2026-10-20 | K33-B 首页 feed 按参考图重做播放浮层(仅 App 端) **用户指令(2026-10-20,原文)**: diff --git a/docs/plans/PROGRESS.md b/docs/plans/PROGRESS.md index b551a6a..fd90fba 100644 --- a/docs/plans/PROGRESS.md +++ b/docs/plans/PROGRESS.md @@ -20631,3 +20631,35 @@ Running Gradle task 'assembleDebug'... ``` 解读:静态检查零告警,400 条测试全部通过,debug APK 构建成功。工作区原有 `pubspec.lock` 变更未纳入本批提交。真机验收由用户执行。 + +## 2026-10-20 ReelShort:K33-C 首页 feed 精修 + +- 分支:`fix/flutter-k33-feed-polish` +- 功能提交:`321c626 fix(flutter): 精修首页 feed 交互与底色` +- develop 合并提交:`c3f5f43 merge: 合并 K33-C 首页 feed 精修`,已推送。 +- 删除底部弹幕/全屏观看两个胶囊及 l10n `danmaku` / `watchFullscreen`(三份 arb + 生成文件)。 +- 新增公共 `interaction_rail.dart`:34×34 深色圆底 IconButton、图标 24、11 号 w600 白字、项间距 18;播放页与 feed 共用,播放页 Key `player-rail-*`、feed Key `rail-*`,数量 `formatInteractionCount`,无数据显示文字。 +- 整集条点击改为打开全屏播放页:`PlayerPage` 新增 `onOpenFullPlayer(Drama, Episode)`,home_view 用 `logic.playDrama(..., episodeId)`;底部进度线改为 20px 手势区,可点按/拖动 seek(`home-feed-progress`,`onScrubStart`/`onSeek` 接 `logic.beginScrub`/`seekTo`)。 +- 首页 feed 纯黑底:`_HomeTabsState._scaffold` 在 tab==0 时 `backgroundColor: Colors.black`;其它 Tab 保持透明暖色。 +- 顶部左侧改为刷新按钮 `home-feed-refresh`(`Icons.refresh_rounded`,tooltip `retry`),点击触发 `PlayerPage.onRefreshFeed` → `catalog.load`;为保证原有「清屏/下载/小窗」入口不丢失,更多弹窗改为长按刷新按钮打开。 +- 其余结构(三 tab、系列信息、标题、标签、作者声明、深色底栏、滑动切剧)未变。 + +测试:移除弹幕/全屏断言;新增首页黑底、刷新按钮、进度拖动 seek、整集条跳全屏播放页断言;播放页 rail 断言保持通过。 + +门禁原始输出: + +```text +$ dart analyze lib test +Analyzing lib, test... +No issues found! + +$ flutter test +00:37 +401: All tests passed! + +$ flutter build apk --debug +Running Gradle task 'assembleDebug'... + 7.5s +✓ Built build/app/outputs/flutter-apk/app-debug.apk +``` + +解读:静态检查零告警,401 条测试全部通过,debug APK 构建成功。工作区原有 `pubspec.lock` 变更未纳入本批提交。真机验收由用户执行。