mirror of
https://github.com/Silent1566/webhtv.git
synced 2026-10-18 07:09:16 +00:00
feat(mobile): 播放器错误层补上重试动作,复用既有的重置路径
设计文档 §9.9 要求错误态有「重试动作」。改动前手机端播放器的错误层是一个**纯文本** TextView(@id/error 本身就是那行文本),只有失败原因,没有任何可操作的东西。 根因与电视端 TV-7 相同:不是缺能力,是错误层从来没把已有能力暴露出来—— 播放器早就有控制层的「重置」按钮(onReset()),手机端的 onReset/onReplay/onRefresh 与电视端逐字相同。 - view_widget_vod.xml:@id/error 由 TextView 改为 LinearLayoutCompat 容器, 内含 @id/errorText(原因,沿用原配色字号)+ @id/errorRetry(MaterialButton + Widget.WebHTV.Button.Tonal,文案复用 error_retry),并把 inset/minHeight 压到 0 以免在 pill 里过高; - VideoActivity:showError/hideError 的目标由 widget.error 改到 widget.errorText (容器不再是 TextView);initEvent 里紧挨控制层那行接线 mBinding.widget.errorRetry.setOnClickListener(guarded(this::onReset)); - 新增 testMobile 的 MobilePlayerErrorRetryContractTest 3 项,与电视端契约同构, 其中一项专门钉住「不得再对容器调用 setText」。 诚实说明本批的增量价值低于电视端:电视端错误浮层出现后遥控器没有别的入口, 而手机端控制层就在屏幕上、用户可以再点一次播放。本批的价值是规格一致性与就近可操作。 验证:testMobile 定向测试 BUILD SUCCESSFUL(新增 3 项全绿);assembleMobileArm64_v8aDebug BUILD SUCCESSFUL;在 5561 上装 mobile flavor 用 iptables 只拦应用 uid 制造真实播放失败, 确认错误层渲染为「播放失败,请重试或切换播放器」+「重试」按钮、接线无崩溃。 未确认:「手指点在那枚新按钮上是否真的触发 onReset」没有取到有效观测——唯一一次点击 落点偏了(点到播放器表面)。已静态核查 onReset->onRefresh->invalidatePlayerContent 链路没有任何 finish(),确认那次退出与重试无关;风险低(与控制层「重置」是同一个动作, 本批只新增一个 setOnClickListener 注册),但这仍是推理不是观测,详见文档 §6.3。 环境限制:本会话无可用 bash,check_ui_tokens.sh 与 task_guard.sh 无法执行, 按同等意图手工暂存/提交/打 tag。
This commit is contained in:
parent
5f51321cd4
commit
537803de67
4 changed files with 287 additions and 7 deletions
Loading…
Add table
Add a link
Reference in a new issue