diff --git a/docs/plans/INBOX.md b/docs/plans/INBOX.md index 49282fd..7336462 100644 --- a/docs/plans/INBOX.md +++ b/docs/plans/INBOX.md @@ -1,25 +1,20 @@ -## [已处理] 2026-10-20 | K51-A 修复首页进入详情页闪屏/灰屏(仅 App 端) +## [已处理] 2026-10-20 | K52-A 去掉原生静态开屏,直接进入带动画的开屏页(仅 App 端) **用户指令(2026-10-20,原文)**: -> 「从首页进短剧详情页会闪屏 灰屏看下什么问题」 +> 「原生的开屏也就不要了 直接显示带动画效果的开屏页即可」 -**根因(已定位)** -`PlayerLogic.openDetail()` 在 push 详情页之前先执行: -1. `session.setRouteVisible(false)` —— 视频层被隐藏/降级为未就绪状态,feed 只能渲染封面占位; -2. `await session.playbackSettled` —— 等待期间首页仍可见; -此时封面若尚未进图片缓存,`RemoteImage` 会先画浅色底,叠加遮罩后呈灰白 → 用户看到的就是进详情前的灰屏闪一下;随后 `saveCurrentProgress` 再等待一次,进一步放大该可见窗口。 - -**口径(只改 Flutter,不动后端、不改接口)** -1. `openDetail()` 改为先 push 路由(视频组件保持挂载,不再 `setRouteVisible(false)`、不再 `await playbackSettled` 后再 push): - - push 之前 `session.setOverlayOpen(true)`,路由返回后 `session.setOverlayOpen(false)`(复用评论面板的暂停/恢复方式,保证详情页覆盖期间不继续外放声音); - - 路由期间视频正常暂停,返回后回到原播放状态与进度,不重新 seek。 - - `saveCurrentProgress()` 放到 push 返回之后(不阻塞首帧)。 -2. 首页 feed 的「标题点击进详情」「系列信息点击进详情」走同一逻辑,确保都不闪。 -3. 详情页自身加载态保持 ink 背景 + 现有骨架,不改。 +**口径(只改 Flutter / 原生启动资源,不动后端、不改接口)** +1. Android 原生开屏只保留纯色底: + - `android/app/src/main/res/drawable/launch_background.xml`、`drawable-v21/launch_background.xml`、`drawable-v31/launch_background.xml` 全部改为仅 `@color/splash_background`(去掉 bitmap / splash_icon 图层); + - `values-v31/styles.xml` 与 `values-night-v31/styles.xml`:`windowSplashScreenAnimatedIcon` 改为透明 drawable(新增 `drawable/splash_transparent.xml`,``),移除 `windowSplashScreenIconBackgroundColor`; + - `splash_background` 保持 `#100C0A`,与 Flutter 动画开屏背景一致,避免色差。 +2. iOS 原生开屏去掉静态图: + - `ios/Runner/Base.lproj/LaunchScreen.storyboard` 删除 `LaunchImage` imageView 及其 constraints,仅保留深色背景(现 rgb 0.0627/0.0470/0.0392)。 +3. Flutter 动画开屏页保持 K50-A 的动画(logo 放大淡入 → FruitShorts → 水果短剧 → 转圈),作为用户看到的第一个画面;原生只做纯色过渡。 +4. 不再引用 `drawable-*/splash_icon.png` 与 iOS `LaunchImage`(文件可保留,但不得出现在启动界面)。 **测试/门禁** -- 新增:从 feed 点详情后,push 前后视频 port 保持挂载(可断言 `session.active` 不变)、路由返回后播放状态与进度不变; -- 不再出现 `setRouteVisible(false)` 造成的占位渲染; +- 静态检查:三个 `launch_background.xml` 不再包含 bitmap;v31 styles 不含 `windowSplashScreenIconBackgroundColor`;LaunchScreen.storyboard 不含 `LaunchImage`; - `dart analyze lib test` 零告警 + `flutter test` 全过 + `flutter build apk --debug`。 -**流程**:从 `develop` 拉 `fix/flutter-k51-detail-flash`;作者 `Zhou Weidong <502333560@qq.com>`;`--no-ff` 合回 develop 并 push;PROGRESS 留痕;真机验收由用户执行。 +**流程**:从 `develop` 拉 `feature/flutter-k52-native-splash-clean`;作者 `Zhou Weidong <502333560@qq.com>`;`--no-ff` 合回 develop 并 push;PROGRESS 留痕;真机验收由用户执行(冷启动应看到纯深色 → Flutter 动画开屏)。 diff --git a/docs/plans/PROGRESS.md b/docs/plans/PROGRESS.md index 5c3ab7d..e8814e3 100644 --- a/docs/plans/PROGRESS.md +++ b/docs/plans/PROGRESS.md @@ -21822,6 +21822,44 @@ Running Gradle task 'assembleDebug'... 解读:清理旧构建与 asset 缓存后,静态检查零告警,458 条测试全部通过,debug APK 从零重新构建成功。新版桌面图标与开屏 logo 的真机视觉效果由用户安装验收。 +## 2026-10-20 ReelShort:K52-A 清理原生静态开屏 + +- 前置状态:K51-A 合并提交 `375b013`;图标资源最终合并 `fcf30ff`;开屏 logo 强化合并 `53591ab`,均已推送到 develop。 +- 分支:`feature/flutter-k52-native-splash-clean` +- 功能提交:`fe5b6e6 feat(flutter): 移除原生静态开屏` +- develop 合并提交:`a11ba50 merge: 合并 K52 原生开屏清理`,已推送。 +- Android 三个 `launch_background.xml` 仅保留 `@color/splash_background`,删除 `splash_icon` bitmap 图层;`splash_background` 继续为 `#FF100C0A`。 +- 新增透明 `drawable/splash_transparent.xml`,`values-v31` 与 `values-night-v31` 的系统开屏图标均指向该 drawable,并删除 `windowSplashScreenIconBackgroundColor`。 +- iOS `LaunchScreen.storyboard` 删除 `LaunchImage` imageView、相关 constraints 与图片资源声明,仅保留现有深色背景;LaunchImage 文件仍保留但不再出现在启动界面。 +- Flutter 动画开屏继续作为原生纯色过渡后的第一个品牌画面。 + +静态检查: + +```text +三个 launch_background.xml:无 bitmap / splash_icon +values-v31 与 values-night-v31:无 windowSplashScreenIconBackgroundColor +LaunchScreen.storyboard:无 LaunchImage +xmllint --noout:全部通过 +``` + +门禁原始输出: + +```text +$ dart analyze lib test +Analyzing lib, test... +No issues found! + +$ flutter test +00:47 +458: All tests passed! + +$ flutter build apk --debug +Running Gradle task 'assembleDebug'... + 5.7s +✓ Built build/app/outputs/flutter-apk/app-debug.apk +``` + +解读:静态检查零告警,458 条测试全部通过,debug APK 构建成功。冷启动应从深色原生底直接过渡到 Flutter 动画开屏,最终效果由用户真机验收。 + ## 2026-10-20 ReelShort:详情页顶部圆形按钮统一修正 - 前置状态:K40-B 评论入口登录闸已合并,合并提交 `230f16a`。