0
Fork 0
mirror of https://github.com/Silent1566/webhtv.git synced 2026-11-14 02:00:15 +00:00
Commit graph

745 commits

Author SHA1 Message Date
Silent1566
5682f2b054 剔除 PR #353 主题系统改动
保留 TMDB 外链浏览器、追更、动作卡和后续修复;移除主题运行时、编辑器、目录与相关测试。

Verification: git diff --check passed; mobile and leanback Arm64 Debug Java compilation passed; Gradle daemon stopped.

Task-Guard: remove-pr353-theme-changes
2026-09-24 19:36:09 +08:00
Silent1566
d3e87170c3 fix: reconcile beta focus correction with immediate detail focus
Verification: 双 flavor Java 编译 BUILD SUCCESSFUL in 2m16s;移动端全量 JVM 单测修复后 BUILD SUCCESSFUL in 40s(4908 tests, 0 failed, 2 skipped);git diff --check 与 --cached --check 通过;两轮组合复评通过

Task-Guard: C19-beta-sync-review-dev4-20260924
2026-09-24 18:37:48 +08:00
Silent1566
940ae26b7f fix: keep TMDB route activation after focus navigation
Verification: 契约测试通过::app:testLeanbackArm64_v8aDebugUnitTest --tests com.fongmi.android.tv.ui.dialog.TmdbSourceDialogInflationContractTest(2 tests)。mobile/arm64-v8a Debug APK 通过 scripts/build_arm64_debug_install.sh 覆盖安装到 192.168.50.3:5555。实机验证通过:语言输入 Down 自动打开 API 选择器,Back 后 Enter 可重新打开,API Down 可进入图片选择器。二次评审、task_guard check、git diff --check 通过;验证临时 XML 已清理。

Task-Guard: C19-beta-sync-review-dev1-20260924-fix
2026-09-24 16:29:26 +08:00
Silent1566
d5065df980 merge: sync latest remote beta
Verification: Beta merge from origin/beta (4b8e6bb80) completed without conflicts; merge content retained in index after resetting only the accidental task-guard baseline commit. No runtime validation run for this reconciliation commit; task review and risk-based verification continue before release.

Task-Guard: C19-beta-sync-review-dev1-20260924
2026-09-24 16:17:13 +08:00
Silent1566
6aabb5b23a merge: 同步远端 dev1 主题与详情修复
合并 origin/dev1 的主题系统、TMDB 详情模式与播放修复,保留 beta 合并后的外链浏览器与追更/动作卡改动。

Verification: 定向主题/详情/追更/动作卡测试通过;mobile 与 leanback Arm64 Java 编译通过。

Task-Guard: beta-sync-review-dev1-remote-20260924
2026-09-24 10:45:25 +08:00
Silent1566
1f42fa6927 fix: preserve action success and error semantics
Verification: :app:testMobileArm64_v8aDebugUnitTest --tests com.fongmi.android.tv.content.ActionCardHelperTest and :app:compileMobileArm64_v8aDebugJavaWithJavac passed (BUILD SUCCESSFUL)

Task-Guard: ACTION-CARD-EMPTY-SUCCESS-20260923
2026-09-23 20:23:06 +08:00
Silent1566
55a8412d2a fix: treat empty action response as success
Verification: ActionCardHelperTest 2/2 passed; mobile arm64 debug assembled and installed to 192.168.50.3:5561; APK sha256 35f754ba09ab18ca146e0e2c05cfefb47651cfadc33573aa4d52e484abc3005d

Task-Guard: ACTION-CARD-EMPTY-SUCCESS-20260923
2026-09-23 18:43:27 +08:00
Silent1566
bec5a5c098 Merge remote-tracking branch 'origin/beta' into dev2 2026-09-22 17:38:47 +08:00
Silent1566
f72b4ec260 fix(tmdb): default legacy official routes to auto
Verification: 历史官方默认配置 UI dump 现显示 API/图片自动选项;显式 routeConfigured 自定义/直连保留测试通过;Mobile ARM64 Debug 聚焦测试 BUILD SUCCESSFUL;Debug 包已覆盖安装到 192.168.50.3:5557,未卸载已有包

Task-Guard: tmdb-auto-default-legacy
2026-09-22 16:28:02 +08:00
Silent1566
e2bce36ed5 feat(tmdb): add automatic route failover and wsrv image proxy
Verification: 研究记录已写入 docs/tmdb-proxy-design.md;自定义 API/图片配置、wsrv.nl URL 包装、API/图片自动候选、低延迟排序与失败冷却单测通过;Mobile ARM64 Debug 聚焦测试 BUILD SUCCESSFUL;scripts/build_arm64_debug_install.sh 已构建并覆盖安装到 192.168.50.3:5557,运行时 UI dump 确认 API/图片线路下拉控件;未卸载已有包

Task-Guard: tmdb-auto-failover
2026-09-22 15:43:27 +08:00
Silent1566
d2ea042db7 Merge remote-tracking branch 'origin/beta' into dev4 2026-09-22 15:06:58 +08:00
Silent1566
da20a189f6 fix(tmdb): remove invalid routes and split api image
Verification: 真实线路探测:itv666 API /3/configuration 返回 200 有效 JSON、/t/p/w342 图片返回 200 image/png;Worker 池各地址 TLS connect EOF,NAStool API 返回 HTML且图片404,已移除;布局检查通过(ScrollView单子节点,apiHostInput/imageHostInput各一次);聚焦 Mobile ARM64 Debug 单测全部通过;Debug APK 构建成功并使用 adb install -r 覆盖安装到 192.168.50.3:5557,运行时确认 API/图片双线路下拉控件

Task-Guard: tmdb-route-validity-split
2026-09-22 13:37:27 +08:00
Silent1566
2985605626 refactor(tmdb): unify route selector input
Verification: 布局结构检查通过:ScrollView 仅一个直接子节点、仅保留 apiHostInput;聚焦 Mobile ARM64 Debug 单测通过(TmdbProxyTest、TmdbConfigImageHostTest、TmdbConfigEffectiveTest、TmdbConfigTestServiceTest、TmdbSourceDialogInflationContractTest);:app:processMobileArm64_v8aDebugResources/Java 编译通过;scripts/build_arm64_debug_install.sh 覆盖安装到 192.168.50.3:5557,运行时 UI dump 确认默认 https://api.tmdb.org、单一线路输入框,并实际打开下拉检查内置线路

Task-Guard: tmdb-unified-route
2026-09-22 12:27:22 +08:00
Silent1566
838167adde feat(tmdb): add built-in proxy route selector
Verification: Layout XML/ScrollView structural check passed; focused Mobile ARM64 Debug unit tests passed (TmdbProxyTest, TmdbConfigImageHostTest, TmdbConfigEffectiveTest, TmdbConfigTestServiceTest, TmdbSourceDialogInflationContractTest); :app:processMobileArm64_v8aDebugResources passed; scripts/build_arm64_debug_install.sh mobile arm64-v8a installed over existing package on 192.168.50.3:5557 and runtime UI dump confirmed proxy selector/label without overlap

Task-Guard: tmdb-proxy-selector
2026-09-22 12:09:54 +08:00
Silent1566
f128caa286 feat(tmdb): add configurable proxy base
Verification: git diff --check passed; XML parse passed; :app:testMobileArm64_v8aDebugUnitTest focused TMDB tests passed with BUILD SUCCESSFUL

Task-Guard: tmdb-proxy
2026-09-22 01:31:23 +08:00
Silent1566
c9dc2ad021 docs: 记录 dev5 未推送改动复评结果
Verification: 81 scoped JVM tests: 0 failures, 0 errors, 1 explicit @Ignore; Leanback/Mobile ARM64 Java compile passed; second source review against pinned Media3 recovery/flush contracts passed; no production changes needed

Task-Guard: C4-dev5-beta-pr-20260921
2026-09-21 21:36:57 +08:00
Silent1566
8325175e63 docs: 记录 C4 第七轮上游合并与验证结果
Verification: 已记录 upstream/main@8e4d9333de 的完整 5 提交台账、merge commit 1bae44dba6 双父、验证结果与 revert -m 1 回滚锚点;文档 git diff --check 通过。

Task-Guard: C4
2026-09-21 21:16:31 +08:00
Silent1566
1bae44dba6 merge: 合并 fish2018/webhtv main 最新音频起播恢复
Verification: 合并 upstream/main@8e4d9333de8ea7346491e71a0b1ab6858a852298:冲突组合保留本地初始化失败立即 PCM 回退并接入上游失败记忆/直通/已缓冲起播恢复;Leanback ARM64 与 Mobile ARM64 Debug Java 编译通过;81 项定向用例中 80 通过、1 项 SystemClock 平台桩用例显式跳过,3 项真实 Media3 恢复集成用例通过。

Task-Guard: C4
2026-09-21 21:15:50 +08:00
www.xueximeng.com
8e4d9333de perf(exo): recover stalled audio startup within buffered media
Verification: Existing Media3 integration: 3 passed, first/resumed startup recovers in existing period without reopening source; healthy direct stays direct. TV32 Debug build and APK v2/ABI checks passed. APK sha256 15c31a01404a1e1678020cecb20df5085508b67ccd880904fb9ef02072654fd5. Policy test selection found no tests; remaining tests explicitly waived by user. No device testing. Evidence: /private/tmp/webhtv-E11-recovery-wx7chb0j.

Task-Guard: E11-first-playback-recovery
2026-09-21 19:54:14 +08:00
www.xueximeng.com
24fa078d2d fix(exo): honor disabled audio passthrough for all encoded outputs
Verification: 53 scoped JUnit cases pass (46 direct-policy, 7 output-ownership); TV32 Debug build successful in 41s; APK CRC/armeabi-v7a/package/v2 signature pass; SHA256 5a05a6f7009dc1f323d7579053d4ca53437508d56073c57b0d1915a916ca8622; strict checkpoint 0 errors/0 warnings; no connected device or performance claim

Task-Guard: E11-audio-passthrough-switch
2026-09-21 16:35:19 +08:00
www.xueximeng.com
e9fef2b90e docs(exo): define complete first-playback recovery plan
Verification: Research only: strict checkpoint verifier 0 errors/0 warnings; table and stage boundaries; 11 source SHA-256 checks; pinned Chromium source identity; A recovery tag verified; no playback performance claim

Task-Guard: E11-first-playback-research
2026-09-21 16:07:24 +08:00
Silent1566
792be29492 fix(mpv): skip video surface gate for audio playback
Verification: MpvSurfaceLoadPolicyTest and MpvSurfaceLifecycleSourceTest passed; scripts/build_arm64_debug_install.sh --serial 192.168.50.3:5557 built and overlay-installed mobile/arm64-v8a debug; local MP3 MPV session loaded directly with start-file/file-loaded and no initial surface gate wait; dev2 attached-surface variant cannot exercise the not-ready branch, which is covered by policy tests

Task-Guard: FIX-MPV-AUDIO-SURFACE-GATE-20260921
2026-09-21 15:37:40 +08:00
Silent1566
1050dba289 fix(exo): fall back immediately when direct audio init fails
Verification: :app:testLeanbackArmeabi_v7aDebugUnitTest --tests com.fongmi.android.tv.player.exo.ExoCompressedAudioDirectPolicyTest passed; scripts/build_arm64_debug_install.sh --serial 192.168.50.3:5557 installed mobile/arm64-v8a debug with overlay; dev2 did not expose vendor-direct for the tested AAC source, so OEM failure-path verification remains explicitly documented

Task-Guard: E11-switch-player-audio-fallback-20260921
2026-09-21 15:06:25 +08:00
www.xueximeng.com
123d871c02 fix(exo): remember confirmed direct audio failures per media and route
Verification: E11 stage A: 64 scoped host cases passed; final IJK-compatible classifier rerun 10/10 passed; Leanback armeabi-v7a Debug APK built, CRC/ABI/v2 signature verified, SHA256 4093aeff27e55101e6ba199a78e77fd5d1c4bc608aa8f89aeac7939131b0c4f9; checkpoint/link checks passed; target-device startup/performance still pending, early timeout unchanged

Task-Guard: E11-audio-startup-admission
2026-09-21 15:02:55 +08:00
Silent1566
e80027303f docs: 修正开发者接入文档与当前源码不一致的描述
Verification: PASS: 13 integration docs links/source paths; 5 factual corrections cross-checked against Parse.java/Action.java/Local.java/SiteApi.java/JarLoader.java; git diff --check origin/beta..HEAD

Task-Guard: integration-docs-review-20260921
2026-09-21 14:10:39 +08:00
Silent1566
1d425537f5 docs: expand developer integration guides
Verification: 12 module integration docs expanded; total 1164 lines; indexes and relative links validated; no empty docs; root README entry present

Task-Guard: integration-docs-20260921
2026-09-21 14:01:20 +08:00
www.xueximeng.com
8d7ccf42b4 docs(exo): record E11 audio startup design and implementation approval
Verification: E11 research: source/log review, task/index links and recorded local revisions checked; checkpoint verifier passed with 0 errors and 0 warnings; no production changes

Task-Guard: E11-audio-startup-research
2026-09-21 14:00:26 +08:00
Silent1566
e7999770ef fix(test): make E11 audio stall fixtures independent of android.os.SystemClock
Verification: 真实构建配置(无 returnDefaultValues)下 :app:testMobileArm64_v8aDebugUnitTest 全量 4765 项 0 失败/0 错误/1 跳过 BUILD SUCCESSFUL;:app:testLeanbackArmeabi_v7aDebugUnitTest 以 com.fongmi.android.tv.player.exo.* + FlagSelectionListenerTest 执行 75 类 553 项 0 失败/0 错误/0 跳过 BUILD SUCCESSFUL;git diff --check 通过

Task-Guard: E11-test-clock-independence
2026-09-21 11:09:52 +08:00
Silent1566
f3aa1f08c1 docs: record sixth-round upstream merge review and open test-gate defect
Verification: 第六轮复评记录:定向编译+41 项定向单测通过;mobile 全量单测发现 12 项 E11 夹具 SystemClock 失败并留待独立修复;git diff --check 通过

Task-Guard: beta-sync-review-dev2-20260921
2026-09-21 11:06:04 +08:00
Silent1566
4d80db9199 merge: 合并 fish2018/webhtv main 最新代码(E11 压缩音频停滞回退、Leanback 线路切换延迟)
Verification: 6th C4 round merge of upstream/main@fa09d226f9: 3 Java compiles (mobileArm64/leanbackArm64/leanbackArmeabi_v7a Debug) BUILD SUCCESSFUL 1m4s; 33 E11 audio tests (26 ExoCompressedAudioDirectPolicyTest + 7 ExoAudioOutputStateTest) and 8 FlagSelectionListenerTest pass; git diff --cached --check clean; no conflict markers

Task-Guard: C4
2026-09-21 10:34:42 +08:00
Silent1566
c5593731c1 docs: assess stable interface identity design
Verification: 文档共351行;git diff --check通过;章节结构和最终建议已核验;task_guard check通过

Task-Guard: INTERFACE-IDENTITY-1
2026-09-20 23:45:01 +08:00
www.xueximeng.com
fa09d226f9 fix: defer leanback cloud route selection until layout completes
Verification: Leanback armeabi-v7a Debug Java compilation PASS; Android 9 API 28 FlagSelectionListenerTest: 8 passed, 0 failures, 0 errors, 0 skipped; actual Leanback layout dispatch and both synchronous refresh exceptions covered; log /private/tmp/webhtv-pan-switch-01j13nva/gradle-tests-2.log

Task-Guard: leanback-pan-switch-layout
2026-09-20 23:17:30 +08:00
www.xueximeng.com
f836d41951 fix(exo): fall back to PCM when compressed audio stalls
Verification: Leanback armeabi-v7a App Java compilation and 33 targeted audio-output JVM tests passed (26 direct-policy, 7 output-ownership; zero failures/errors/skips); upstream checkpoint validation passed. Evidence: /private/tmp/webhtv-E11-audio-stall-zxepv15j/gradle-verified.log. Sony device playback remains unverified.

Task-Guard: E11-audio-direct-stall-fallback
2026-09-20 22:22:23 +08:00
Silent1566
e362079845 fix(detail): stabilize TMDB episode grid column margins
Verification: origin/beta 已是基线祖先无需重复合并;两轮复评通过;TmdbEpisodeAdapterTest 15/15 通过;Leanback Arm64 Debug Java 编译通过;Mobile Arm64 Debug APK 覆盖安装成功;1920px 详情页三行网格 outer 28/28px、gap 21px、card 450/451px

Task-Guard: beta-sync-review-dev3-20260920
2026-09-20 20:51:30 +08:00
Silent1566
5c79ad2841 merge: 合并 beta 最新代码并完成第二轮复评
Verification: git diff --cached --check 通过;合并 origin/beta@2c0f4234d7 无冲突;Mobile/Leanback Arm64 Debug Java 编译与 Mobile Arm64 AndroidTest 编译 BUILD SUCCESSFUL;Mobile Arm64 Debug 全量 JVM 单测 4752 项 0 失败 0 错误 1 跳过;Leanback 定向 MpvPropertyCacheTest 通过;复评未发现阻断问题

Task-Guard: beta-sync-review-dev2-20260920-round2
2026-09-20 19:22:49 +08:00
Silent1566
0616a992f6 revert(exo): keep video decode mode manual
Verification: CompatFfmpegVideoRendererSourceTest + MpvHardwareDecodePolicyTest + ExoAudioCodecSelectorTest: 9 tests, 0 failures/errors (BUILD SUCCESSFUL); :app:compileMobileArm64_v8aDebugJavaWithJavac BUILD SUCCESSFUL; git diff --check clean

Task-Guard: E-SP9-manual-decode-contract
2026-09-20 17:06:59 +08:00
Silent1566
4a9f0fd14d fix(exo): fall back to software when hardware codec is absent
Verification: CompatFfmpegVideoRendererSourceTest passed; arm64 debug APK built/installed on 192.168.50.3:5561; same H.265 live now renders with ffmpegLavc63.3.100-hevc, videoSize=1280x720, firstFrameMs=9798; APK sha256 a2cc6af0d432556c2ea2b16b1f81e48652a911e7a76a2409944f4453e86a085d

Task-Guard: E-SP9-unsupported-video-soft-fallback
2026-09-20 16:41:23 +08:00
Silent1566
71bbd2ed04 docs: record C18 final delivery state
Verification: C18 closure record updated with merge commit 9f998d6808, recovery tag, origin/dev4 push, PR #331 and ff-only pull result; diff check passed

Task-Guard: C18-delivery-record-20260920
2026-09-20 16:09:03 +08:00
Silent1566
1cb2474f40 docs: close C18 beta sync delivery record
Verification: closure documentation records merge commit 9f998d6808, recovery tag, origin/dev4 push, PR #331 CLEAN/MERGEABLE, and ff-only pull Already up to date; markdown diff check passed

Task-Guard: C18-closure-20260920
2026-09-20 16:08:34 +08:00
Silent1566
9f998d6808 merge: sync beta latest and re-review dev4 changes
Verification: merged origin/beta b4501c91c7 into dev4; resolved TmdbDetailActivity import conflict preserving FOLLOW-1 and ConfigEvent; git diff --check and git diff --cached --check pass; :app:compileLeanbackArm64_v8aDebugJavaWithJavac and :app:compileMobileArm64_v8aDebugJavaWithJavac BUILD SUCCESSFUL; :app:testMobileArm64_v8aDebugUnitTest 4745 tests, 0 failures, 0 errors, 1 skipped

Task-Guard: C18-beta-sync-review-dev4-20260920
2026-09-20 16:07:03 +08:00
Silent1566
ea485ee9bf feat(following): disable feature by default
Verification: FollowingUiSourceTest and full mobile/leanback unit suites passed; Debug APK over-installed on 192.168.50.3:5561; explicit true preference and 2 following rows preserved

Task-Guard: FOLLOW-1-DEFAULT-OFF
2026-09-20 15:38:50 +08:00
Silent1566
4158288997 test(following): preserve device data across instrumentation
Verification: androidTest APK compiled; full following instrumentation OK (12 tests); before/after DB comparison PASS for 2 following rows and 2 source rows; main Debug over-install also preserved all rows

Task-Guard: FOLLOW-1-TEST-ISOLATION
2026-09-20 15:17:42 +08:00
Silent1566
bce572f21f feat(following): mark visible cards as read
Verification: mobile and leanback unit suites passed; full following instrumentation OK (12 tests) on 192.168.50.3:5561; visible card auto-marked read and UI assertions confirmed read button/badge hidden

Task-Guard: FOLLOW-1-VISIBLE-READ
2026-09-20 15:03:41 +08:00
Silent1566
934e831de5 fix(following): hide playback action until state is resolved
Verification: mobile and leanback unit suites passed; Debug APK over-installed on 192.168.50.3:5561; with following_enabled=false playback page has no following node/button in UI dump or screenshot

Task-Guard: FOLLOW-1-PLAY-FLASH
2026-09-20 14:42:21 +08:00
Silent1566
43e02d7d74 fix(following): refresh entries when feature flag changes
Verification: mobile and leanback unit suites passed; Debug APK over-installed on 192.168.50.3:5561; toggling following_enabled off/on restored bottom navigation immediately; playback page screenshot shows 加入追更

Task-Guard: FOLLOW-1-ENTRY-REFRESH
2026-09-20 14:06:07 +08:00
Silent1566
d161b65eec docs(following): record TMDB migration verification
Verification: Recorded FollowingMigrationDeviceTest evidence and final following instrumentation OK (12 tests)

Task-Guard: FOLLOW-1-MIGRATION-LEDGER
2026-09-20 13:09:08 +08:00
Silent1566
1e4ecac939 fix(following): migrate source records after TMDB match
Verification: mobile unit tests and androidTest build passed; full following instrumentation OK (12 tests) on 192.168.50.3:5561 with Debug over-install; new migration test passed

Task-Guard: FOLLOW-1-TMDB-MIGRATION
2026-09-20 13:08:51 +08:00
Silent1566
6f0b56f5d9 docs(following): close final verification record
Verification: Recorded final closure evidence: mobile/leanback full unit suites passed; latest Debug over-install; full following instrumentation OK (11 tests); no fatal/main-thread Room logs

Task-Guard: FOLLOW-1-FINAL-CLOSURE
2026-09-20 11:57:12 +08:00
Silent1566
9b17375d2b fix(following): enable detail-page subscriptions
Verification: FollowingUiSourceTest passed on mobileArm64_v8aDebug; detail-page following creation now sets enabled=true and common source compiled

Task-Guard: FOLLOW-1-DETAIL-ENABLED
2026-09-20 11:54:03 +08:00
Silent1566
1cab41ffc9 fix(following): keep planned shows on a daily check
Verification: FollowingSchedulePolicyTest passed on mobileArm64_v8aDebug including planned daily-check case; common source compiled

Task-Guard: FOLLOW-1-PLANNED-DAILY
2026-09-20 11:53:01 +08:00