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

fix(adblock): 复评修正广告时长跨单位进位与显示粒度边界(F1/F2)

复评 72cdec02b(去广告提示补充总广告时长)时在时长格式化上发现 2 个真实缺陷:

- F1 时长跨单位边界自相矛盾:原 durationText 用未舍入原值分档,
  [59.95, 60) 会被 %.1f 格式化成「60.0 秒」,与仓库既有约定
  AdBlockTimeFormatter.formatSeconds(先舍入后进位,测试锁定
  59.96 -> 00:01:00.0)冲突。改为先按 0.1 秒粒度舍入成 tenths 再分档,
  秒档条件 tenths < 600,进位只发生一次。
- F2 低于显示粒度的时长仍显示「0.0 秒」:AD-NOTICE-01 验收标准第 4 条
  要求不出现「0.0 秒」误导,但 0 < d < 0.05 的正值仍走秒档并被 %.1f
  格式化成「0.0 秒」。改为显示粒度以下(含 0/负数/非有限值)返回空串,
  message 退回只显示条数,最小可显示值为 0.1 秒。

新增 HlsAdblockNoticeTest 两条锁定用例(6 -> 8 项),既有文案断言全部保持。
本提交同时记录 C53 合并判定与复评结论(docs/C53-...),并更新
AD-NOTICE-01 任务文档的复评补充与下一动作。

Verification: 复评修复 F1/F2:durationText 先按 0.1 秒粒度舍入再分档(59.96 -> 1 分钟,消除自相矛盾的 60.0 秒),显示粒度以下返回空串、message 退回只显示条数(0.04 -> 无时长,消除 0.0 秒)。负对照按复评前原文逻辑实跑得 old(59.96)=60.0 秒 / old(0.04)=0.0 秒,证明两条新增用例可证伪。验证:双 flavor 定向单测 34 项(17+17)failures=0 errors=0;双 flavor Java/AndroidTest 编译 + 全量 JVM 套件 BUILD SUCCESSFUL(leanback 4131 / mobile 4969,failures=0 errors=0,较 C52 基线 +6/+6);UI_TOKEN_STATUS PASS(violations=1 为基线既有的 item_following.xml,零新增违规);git diff --check=0、冲突标记 0。合并判定:git merge --no-ff origin/beta = Already up to date(beta tip fe1f725a1 已是 HEAD 父提交,merge-base --is-ancestor 为真);零复活严格判据 0 行(139 个 revert 类单亲提交 / 26786 distinct 删除行 vs diff 新增 134 行,表面重合 13 行全为通用脚手架行且大量存在于 beta tip),--diff-filter=D 为空(零丢失)。

Task-Guard: C53-beta-merge-review-dev1
This commit is contained in:
Silent1566 2026-10-09 16:02:14 +08:00
commit 926b9d50ca
4 changed files with 314 additions and 9 deletions