0
Fork 0
mirror of https://github.com/Silent1566/webhtv.git synced 2026-10-25 10:16:33 +00:00

fix(home): 重置/恢复后不再卡在"内容源加载失败",配置可用时状态自己收起

「还没配接口」被 BaseConfig 当成 error("") 抛出来,错误态便渲染成
「内容源加载失败 + 重试」——没有失败原因(空 message 直接隐藏原因行,
与用户截图一致),重试也永远不会成功(库里 0 条 config)。重置应用、
重装、恢复出厂后首次启动就是这个状态。

另外状态浮层只有「启动成功」和「点重试」两个出口,而恢复备份、远程指令、
设置页切换接口走的是 ConfigEvent/RefreshEvent.home(),不经过出口,于是
配置明明已经可用,首页仍顶着状态卡,必须杀进程冷启动(用户反馈"杀进程后
重进才行")。

- Callback 新增 noConfig() 钩子;BaseConfig 空地址改走它,不再发 error("")
- StateEvent 新增 NO_CONFIG 类型;两端 HomeActivity 实现 noConfig 回调
- 两端首页改为「未配置」空态:标题+解释+主动作=添加接口(进既有接口列表),
  不再是错误色标题与死重试
- 两端 RefreshEvent.HOME 增加 dismissStateIfConfigured():配置真有站点时
  收起过期的状态浮层
- 三语文案 home_no_config_title/description/action
- 两端契约测试各新增两条(无配置≠失败、配置可用即收卡)

验证:MobileHomeStateContractTest 9/9、TvErrorStateContractTest 13/13 全绿;
两端 debug 编译通过;新 Android 用户干净安装真机验证——首页显示
「还没有配置接口 / 添加一个点播接口后即可浏览内容。/ 添加接口」,
标题非错误色、插画保留、无「重试」,点主动作可进入接口列表并新增;
有配置的用户冷启动回归正常加载内容。

既有失败(不在范围,读取文件与本 diff 无交集):TmdbSourceOnlyInteractionTest、
ReaderPlaybackRoutingSourceTest、WebThemeTokenSourceTest、MpvFontConfigTest、
MpvHlsCacheCoordinatorTest。
This commit is contained in:
Silent1566 2026-10-18 12:51:15 +08:00
commit 0f1dc0c615
12 changed files with 391 additions and 2 deletions