diff --git a/docs/plans/INBOX.md b/docs/plans/INBOX.md index d2c67da..9d7562e 100644 --- a/docs/plans/INBOX.md +++ b/docs/plans/INBOX.md @@ -1,4 +1,4 @@ -## [待处理] 2026-10-20 | K29.8 「更多」弹窗增加小窗播放 +## [已处理] 2026-10-20 | K29.8 「更多」弹窗增加小窗播放 **用户指令(2026-10-20,原文)**: > 「再加上小窗播放」 diff --git a/docs/plans/PROGRESS.md b/docs/plans/PROGRESS.md index 13dbad3..1e802ba 100644 --- a/docs/plans/PROGRESS.md +++ b/docs/plans/PROGRESS.md @@ -19769,6 +19769,36 @@ Running Gradle task 'assembleDebug'... 解读:静态检查零告警,384 条测试全部通过,debug APK 构建成功。工作区原有 `pubspec.lock` 变更未纳入本批提交。真机验收由用户执行。 +## 2026-10-20 ReelShort:K29.8 更多面板增加小窗播放 + +- 分支:`fix/flutter-k29-more-pip` +- 功能提交:`0af5de9 fix(flutter): 更多面板增加小窗播放入口` +- develop 合并提交:`55d22a9 merge: 合并 K29.8 更多面板小窗播放`,已推送。 +- `PlayerMoreActions` 新增可选 `onPip`;`player_view_actions.dart` 的 `_openMore` 仅在 `logic.pictureInPicture.isPlatformSupported` 时传入 `() => logic.enterPip(context)`,否则为 null。 +- `player_more_sheet.dart` 在「清屏播放」与「离线缓存」之间新增「小窗播放」行,Key `player-more-pip`,图标 `Icons.picture_in_picture_alt_rounded`,文案复用三语已有的 `pictureInPicture`;仅在 `onPip != null` 时渲染,不支持时整行隐藏、不置灰。 +- 点击后先关闭更多面板,再在下一帧触发 `onPip`,与清屏、离线缓存动作的关闭时序一致;底栏右侧仍为「清屏」,未重复放置 PiP。 +- 新增 `test/player/player_more_sheet_test.dart`:onPip 为空时不渲染该行、传入时渲染且三行顺序为清屏→小窗→离线缓存、点击后回调一次且弹窗关闭。 +- `player_fullscreen_test.dart` 用 `TargetPlatformVariant` 覆盖平台分支:Android 下更多面板出现 `player-more-pip`,macOS 下不出现;原「已删除项」断言移除 pip。 +- 其余弹窗项(倍速、清晰度、清屏播放、离线缓存)与播放逻辑未改动。 + +门禁原始输出: + +```text +$ dart analyze lib test +Analyzing lib, test... +No issues found! + +$ flutter test +00:36 +388: All tests passed! + +$ flutter build apk --debug +Running Gradle task 'assembleDebug'... + 25.4s +✓ Built build/app/outputs/flutter-apk/app-debug.apk +``` + +解读:静态检查零告警,388 条测试全部通过(较 K29.7 新增 4 条小窗用例),debug APK 构建成功。工作区原有 `pubspec.lock` 变更未纳入本批提交。真机验收由用户执行。 + ## 2026-10-20 ReelShort:K29.3 恢复播放器深色外观 - 分支:`fix/flutter-k29-dark-player`