Skip to content
Open

Dev #99

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2333 commits
Select commit Hold shift + click to select a range
923e326
Merge pull request #189 from Silent1566/dev4
Silent1566 Aug 31, 2026
a2fbff1
Merge remote-tracking branch 'origin/dev2' into dev2
Silent1566 Aug 31, 2026
4fac1d5
Merge remote-tracking branch 'origin/beta' into dev2
Silent1566 Aug 31, 2026
4db26d0
修复:播放器里切内核不再全局生效,改回按剧集记住
Silent1566 Aug 31, 2026
3b736c4
Merge pull request #190 from Silent1566/dev3
Silent1566 Aug 31, 2026
1d611ac
支持:默认 EXO 内核执行结构化去广告规则
Silent1566 Aug 31, 2026
86d351d
修复短剧竖屏手势误触:整屏上下滑切集,亮度音量改为长按后再滑
Silent1566 Aug 31, 2026
c45d601
Merge remote-tracking branch 'origin/beta' into dev2
Silent1566 Aug 31, 2026
342f99c
Fix duplicate TV history projection for unknown season routes
Silent1566 Aug 31, 2026
8a15243
修复猫源启动超时与阅读器迟到结果串页
Silent1566 Aug 31, 2026
51993de
Merge pull request #191 from Silent1566/dev4
Silent1566 Aug 31, 2026
b35ff03
Merge pull request #192 from Silent1566/dev2
Silent1566 Aug 31, 2026
0452b22
Merge remote-tracking branch 'origin/beta' into dev2
Silent1566 Aug 31, 2026
39ac963
Restore playback ownership key after activity recreation
Silent1566 Aug 31, 2026
e76c27e
Merge remote-tracking branch 'bd/beta' into dev
YaChengMu Aug 31, 2026
87cb0f3
Merge remote-tracking branch 'bd/dev1' into dev
YaChengMu Aug 31, 2026
119b3ae
修复沉浸融合模式播放器当前集标题
Silent1566 Aug 31, 2026
b3fab34
Harden playback ownership and push history keys
Silent1566 Aug 31, 2026
701f8ae
Merge pull request #193 from Silent1566/dev4
Silent1566 Aug 31, 2026
76b3fe1
Merge pull request #194 from Silent1566/dev3
Silent1566 Aug 31, 2026
5e899a8
Merge remote-tracking branch 'bd/beta' into dev
YaChengMu Aug 31, 2026
6ccc0de
fix(mpv): restore armv7 DV7 P8.1 native asset
Silent1566 Aug 31, 2026
c1c53da
Merge pull request #195 from Silent1566/dev4
Silent1566 Aug 31, 2026
e8eafbb
Merge remote-tracking branch 'bd/beta' into dev
YaChengMu Aug 31, 2026
d0809f8
合并 fish2018/main 上游应用更新
Silent1566 Sep 1, 2026
18b3977
记录 C4 上游合并收口
Silent1566 Sep 1, 2026
ab30930
修复:原生增强详情页不再叠出两层加载中
Silent1566 Sep 1, 2026
c10f568
Merge remote-tracking branch 'origin/beta' into dev1
Silent1566 Sep 1, 2026
d8910cc
修复自动跳片尾失效并细分可跳片段类型
Silent1566 Sep 1, 2026
9e8e029
Merge remote-tracking branch 'origin/beta' into dev4
Silent1566 Sep 1, 2026
826a4c1
修复:手机端原生增强进入播放页仍叠两层加载与紫色底屏
Silent1566 Sep 1, 2026
a26a80d
Merge remote-tracking branch 'origin/beta' into dev3
Silent1566 Sep 1, 2026
d187892
按评审修正跳过逻辑的落点、去重与提示
Silent1566 Sep 1, 2026
abe3872
Merge pull request #196 from Silent1566/dev3
Silent1566 Sep 1, 2026
27f18f3
Merge remote-tracking branch 'bd/beta' into dev
YaChengMu Sep 1, 2026
3a5cd25
Merge remote-tracking branch 'bd/dev1' into dev
YaChengMu Sep 1, 2026
fc5b6ba
merge: synchronize beta playback and history fixes
Silent1566 Sep 1, 2026
db4b165
docs: record C5 beta sync closure
Silent1566 Sep 1, 2026
c975ae1
Merge pull request #197 from Silent1566/dev2
Silent1566 Sep 1, 2026
5a8122f
修复:手动选择 TMDB 后重进详情页丢失手动选择
Silent1566 Sep 1, 2026
d5182a7
Merge remote-tracking branch 'origin/beta' into dev3
Silent1566 Sep 1, 2026
b0af66a
修复:手动 TMDB 绑定的通配符退化与丢失更新竞态
Silent1566 Sep 1, 2026
381266a
按第二轮评审修跳过判定的状态机与去重
Silent1566 Sep 1, 2026
d8a8d36
Merge remote-tracking branch 'bd/beta' into dev
YaChengMu Sep 1, 2026
adbc991
修复:手动 TMDB 别名污染与全局标题域降级
Silent1566 Sep 2, 2026
b7b2b1a
feat:quick-switch-realtime-subtitle-language
Silent1566 Sep 2, 2026
9188c8a
Merge pull request #198 from Silent1566/dev3
Silent1566 Sep 2, 2026
1c1ab72
fix: release mobile original enhanced episode viewport height
Silent1566 Sep 2, 2026
ddb9045
"fix: expand original enhanced episode page scroll content"
Silent1566 Sep 2, 2026
671888a
Merge remote-tracking branch 'origin/beta' into dev4
Silent1566 Sep 2, 2026
a33ff92
merge: sync origin/beta C6 and fix subtitle callback race
Silent1566 Sep 2, 2026
1b376ee
docs: close C6 beta sync record
Silent1566 Sep 2, 2026
7db1b9d
Merge pull request #199 from Silent1566/dev2
Silent1566 Sep 2, 2026
a8f2015
merge-C7-beta-sync
Silent1566 Sep 2, 2026
cf89d14
docs-close-C7-beta-sync
Silent1566 Sep 2, 2026
624e0b1
修复合并评审发现的播放器遮罩与预载回归
Silent1566 Sep 2, 2026
71a82fa
Merge remote-tracking branch 'bd/beta' into dev
YaChengMu Sep 2, 2026
c2929ac
Merge remote-tracking branch 'bd/dev2' into dev
YaChengMu Sep 2, 2026
dd8a235
Merge remote-tracking branch 'bd/dev4' into dev
YaChengMu Sep 2, 2026
86e9963
refactor(test): 移除测试中未使用的变量声明
YaChengMu Sep 2, 2026
db7218f
合并远端beta最新代码并解决冲突
Silent1566 Sep 2, 2026
e7c1c9c
Merge pull request #200 from Silent1566/dev4
Silent1566 Sep 2, 2026
fddca6e
fix: tolerate unreadable APK signing info during update validation
Silent1566 Sep 2, 2026
c493488
Merge remote-tracking branch 'origin/beta' into dev4
Silent1566 Sep 2, 2026
59fd268
收紧更新签名校验容错边界
Silent1566 Sep 2, 2026
b235cee
fix: isolate and harden reader history routing
Silent1566 Sep 2, 2026
308694a
Merge pull request #201 from Silent1566/dev4
Silent1566 Sep 2, 2026
7fdfc7d
fix(mobile): 推荐详情弹窗首次点击即生效
Silent1566 Sep 2, 2026
c0192b6
fix: expand mobile backdrop episode scroll content
Silent1566 Sep 2, 2026
6e76e53
Merge remote-tracking branch 'bd/beta' into dev
YaChengMu Sep 2, 2026
906efe2
Merge remote-tracking branch 'bd/dev1' into dev
YaChengMu Sep 2, 2026
a228e98
fix(exo): restore adaptive AVC track selection
Silent1566 Sep 3, 2026
0c71cad
fix: release stuck TV speed boost overlay when key release is missed
Silent1566 Sep 3, 2026
97e980c
feat: complete beta sync review and fixes
Silent1566 Sep 3, 2026
9b2f02b
Merge pull request #202 from Silent1566/dev3
Silent1566 Sep 3, 2026
0c62583
Merge remote-tracking branch 'origin/beta' into dev1
Silent1566 Sep 3, 2026
bcfe7b2
Merge pull request #203 from Silent1566/dev1
Silent1566 Sep 3, 2026
ff43863
docs: record playback diff audit checkpoint
Silent1566 Sep 3, 2026
288984e
fix: restore update acceleration source selection from settings
Silent1566 Sep 3, 2026
80ded13
docs: update C9 beta ledger and E-SP7 beta merge checkpoint; record t…
Silent1566 Sep 3, 2026
bb53d22
Merge pull request #204 from Silent1566/dev4
Silent1566 Sep 3, 2026
5cf2f2e
Resolve merge conflicts for C8-beta-sync task
Silent1566 Sep 3, 2026
79597d2
build(player): align binary dependency inputs with upstream
Silent1566 Sep 3, 2026
08a0911
docs: close C10 binary upstream alignment record
Silent1566 Sep 3, 2026
629ebfb
Merge remote-tracking branch 'bd/beta' into dev
YaChengMu Sep 3, 2026
1d08c6f
merge: sync origin/beta C8 and close review repairs
Silent1566 Sep 3, 2026
602203b
docs: close C8 beta sync record
Silent1566 Sep 3, 2026
d35797e
chore(player): remove stale mpv v556 inputs
Silent1566 Sep 4, 2026
902decf
merge beta E-SP7 adaptive selection
Silent1566 Sep 4, 2026
3df618f
merge: sync origin/beta C10 and resolve intro skip conflicts
Silent1566 Sep 4, 2026
5db6efa
docs: record C10 beta alignment review
Silent1566 Sep 4, 2026
dd105e8
Merge pull request #205 from Silent1566/dev2
Silent1566 Sep 4, 2026
fbbefb7
Merge pull request #206 from Silent1566/dev4
Silent1566 Sep 4, 2026
7d18c03
feat: unify github proxy configuration
Silent1566 Sep 4, 2026
a6f66b9
test: make reader history refresh assertion CRLF tolerant
Silent1566 Sep 4, 2026
55a6ed3
feat: merge legacy github proxies and probe latency
Silent1566 Sep 4, 2026
938220a
Hide empty search sources
Silent1566 Sep 4, 2026
6d8e977
fix: improve github proxy dialog touch layout
Silent1566 Sep 4, 2026
5883f2d
Merge branches 'main' and 'dev4' of https://github.com/Silent1566/web…
Silent1566 Sep 4, 2026
068e875
Merge pull request #207 from Silent1566/dev4
Silent1566 Sep 4, 2026
63e0c71
Merge remote-tracking branch 'origin/beta' into dev4
Silent1566 Sep 4, 2026
5a1e4f0
fix: 开过设置网页的详情不写缓存,修复二级页面只有第一次点击生效
Silent1566 Sep 4, 2026
e6429d1
fix: expand github proxy dialog content
Silent1566 Sep 4, 2026
a7d3974
fix: restore github proxy dialog list height
Silent1566 Sep 4, 2026
34a1647
Merge remote-tracking branch 'origin/beta' into dev1 for review
Silent1566 Sep 4, 2026
a90be66
Merge pull request #208 from Silent1566/dev1
Silent1566 Sep 4, 2026
9fc6ca2
fix: 只有占位线路的详情不写缓存,修复设置类入口第二次点击直奔播放页
Silent1566 Sep 4, 2026
1aa8c0b
merge: 合并远端beta最新代码并修复评审发现的六处缺陷
Silent1566 Sep 4, 2026
43c173d
feat: show TV search source progress
Silent1566 Sep 4, 2026
2b2b136
Merge pull request #209 from Silent1566/dev3
Silent1566 Sep 4, 2026
eb4e334
docs: design external subtitle restore from history
Silent1566 Sep 4, 2026
289ca3b
Merge remote-tracking branch 'bd/beta' into dev
YaChengMu Sep 4, 2026
5166da9
feat: restore external subtitle from playback history
Silent1566 Sep 4, 2026
2d8f7ae
Merge remote-tracking branch 'origin/beta' into dev1
Silent1566 Sep 4, 2026
af03396
Merge remote-tracking branch 'origin/beta' into dev4
Silent1566 Sep 4, 2026
6047267
Merge pull request #210 from Silent1566/dev4
Silent1566 Sep 4, 2026
ad702b0
feat: add leanback touch optimization mode
Silent1566 Sep 4, 2026
eab79fb
Merge pull request #211 from Silent1566/release/v5.6.0-beta-202609041027
Silent1566 Sep 4, 2026
3174904
ui: move touch optimization below personal settings
Silent1566 Sep 4, 2026
b395ae5
Merge remote-tracking branch 'origin/beta' into dev1
Silent1566 Sep 5, 2026
79ba105
Merge remote-tracking branch 'bd/beta' into dev
YaChengMu Sep 5, 2026
7af63f2
Merge remote-tracking branch 'bd/main' into dev
YaChengMu Sep 5, 2026
8de6306
fix: 完善历史外挂字幕恢复
Silent1566 Sep 5, 2026
868e1a9
Revert incorrect test assertion in TmdbDetailActivityLayoutTest
Silent1566 Sep 5, 2026
d84d54b
Merge pull request #212 from Silent1566/dev1
Silent1566 Sep 5, 2026
97a7dd8
feat: remember manual danmaku search intent
Silent1566 Sep 5, 2026
83176f4
Merge remote-tracking branch 'origin/beta' into dev1
Silent1566 Sep 5, 2026
23ee0d6
feat: add playback menu overlay switch
Silent1566 Sep 5, 2026
36b04d1
feat: 实现弹幕手动匹配记忆功能(站点级和TMDB全局级)
Silent1566 Sep 5, 2026
78b3658
feat: move touch optimization to personal settings (TV & mobile)
Silent1566 Sep 5, 2026
6831f89
Merge remote-tracking branch 'origin/beta' into dev2
Silent1566 Sep 5, 2026
1a41a6f
Merge remote-tracking branch 'origin/beta' into dev3
Silent1566 Sep 5, 2026
727e4d6
Merge pull request #213 from Silent1566/dev2
Silent1566 Sep 5, 2026
db44647
Merge pull request #214 from Silent1566/dev3
Silent1566 Sep 5, 2026
3d6cb55
Center focused TMDB detail episode in list mode
Silent1566 Sep 5, 2026
399023c
Fix danmaku auto-line selection
Silent1566 Sep 5, 2026
db02209
Merge remote-tracking branch 'origin/beta' into dev4
Silent1566 Sep 5, 2026
a970acb
fix: repair beta merge and center TMDB episodes
Silent1566 Sep 5, 2026
bc5f9b4
Merge pull request #215 from Silent1566/dev4
Silent1566 Sep 5, 2026
97a5e3e
fix(mpv): preserve unknown duration and recover timeline on restart
Silent1566 Sep 5, 2026
5a479aa
合并 beta 并修复弹幕搜索记忆与偏好备份
Silent1566 Sep 5, 2026
b077fd2
beta: fix keyword binding in search dialogs, retain playback overlay …
Silent1566 Sep 5, 2026
0ce6f13
fix(mpv): recover missing duration during playback state refresh
Silent1566 Sep 5, 2026
60fc55e
feat(ad rule): implement batch import and enable/disable for imported…
Silent1566 Sep 5, 2026
8ce1fbd
beta: fix keyword binding in search dialogs, retain playback overlay …
Silent1566 Sep 5, 2026
53e4f53
Merge pull request #216 from Silent1566/dev2
Silent1566 Sep 5, 2026
cebe42b
Merge pull request #217 from Silent1566/dev1
Silent1566 Sep 5, 2026
1a95bf9
fix: 让主题色彩设置在站点选择等弹窗及所有 Activity 即时生效
Silent1566 Sep 5, 2026
1125601
feat: merge origin/beta into dev3 and review local ad-rule batch import
Silent1566 Sep 5, 2026
2677512
feat: 添加外观与语言设置页及入口
Silent1566 Sep 5, 2026
0e9fbb0
fix: 恢复电视端外观设置行为
Silent1566 Sep 5, 2026
a2127a7
fix: 让电视端界面大小设置生效
Silent1566 Sep 5, 2026
99d0dad
Merge remote-tracking branch 'origin/beta' into dev1
Silent1566 Sep 6, 2026
ea7f7ac
chore: restore executable permission for gradlew
Silent1566 Sep 6, 2026
74e60ef
fix: 移除 HomeActivity 中对 RefreshEvent.Type.THEME 的冗余订阅
Silent1566 Sep 6, 2026
4242a06
fix: 站点选择弹窗底色跟随主题色彩
Silent1566 Sep 6, 2026
85217ab
chore: remove Gradle wrapper backup file
Silent1566 Sep 6, 2026
c1d8b10
chore: prepare to fix Gradle wrapper download
Silent1566 Sep 6, 2026
8d10459
chore: attempt to fix Gradle wrapper download
Silent1566 Sep 6, 2026
3a2d772
fix: 站点选择弹窗以程序化方式应用主题动态色
Silent1566 Sep 6, 2026
03f14ae
feat: TV端添加外观与语言设置页及入口
Silent1566 Sep 6, 2026
1558c90
fix: 站点选择弹窗主题背景契约恢复,移除错误的程序化覆盖
Silent1566 Sep 6, 2026
66b5505
fix: avoid duplicate mobile Exo resume seek
Silent1566 Sep 6, 2026
33d9ef2
fix: dialog themes use dynamic colors so site selection dialog backgr…
Silent1566 Sep 6, 2026
f627d99
fix: 站点选择弹窗以程序化方式应用主题动态色,并修正 dialog 主题以使用动态色
Silent1566 Sep 6, 2026
7a3d815
chore: update Gradle wrapper to Huawei mirror and make gradlew execut…
Silent1566 Sep 6, 2026
910b9c0
chore: review beta merge, update task_guard.sh permissions, remove st…
Silent1566 Sep 6, 2026
e6833fb
fix: resolve Leanback AdRuleManageDialog variable name collision and …
Silent1566 Sep 6, 2026
6b04909
fix(mpv): recover missing duration when initialized but uncached
Silent1566 Sep 6, 2026
3efa3db
Merge remote-tracking branch 'bd/beta' into dev
YaChengMu Sep 6, 2026
0099c6f
Merge remote-tracking branch 'bd/dev1' into dev
YaChengMu Sep 6, 2026
17e53da
Merge remote-tracking branch 'bd/dev3' into dev
YaChengMu Sep 6, 2026
4176f6a
Merge remote-tracking branch 'bd/dev4' into dev
YaChengMu Sep 6, 2026
7a38065
fix(mobile): apply site selection theme colors on older Android devices
Silent1566 Sep 6, 2026
a7a891d
feat(leanback): 添加外观设置对话框
YaChengMu Sep 6, 2026
47c3698
feat: 更新
YaChengMu Sep 6, 2026
6a0b967
Merge pull request #219 from Silent1566/dev3
Silent1566 Sep 6, 2026
cb38689
fix: bind mobile seek progress after history player rebuild
Silent1566 Sep 6, 2026
9122082
Merge remote-tracking branch 'origin/beta' into dev2
Silent1566 Sep 6, 2026
03f600a
fix: resolve leanback build errors by adding missing import and addin…
Silent1566 Sep 6, 2026
c78b7cb
Merge pull request #220 from Silent1566/dev4
Silent1566 Sep 6, 2026
7a93ec7
Merge pull request #221 from Silent1566/dev2
Silent1566 Sep 6, 2026
016edd1
merge: resolve PR 218 conflicts with beta
Silent1566 Sep 6, 2026
c344741
feat: unify mobile appearance and language settings
Silent1566 Sep 6, 2026
cc88e27
Merge pull request #218 from Silent1566/dev1
Silent1566 Sep 7, 2026
1c2fa82
docs: approve LitePan title recognition design
Silent1566 Sep 7, 2026
01ee74c
fix: 修正实验室运行时 ABI 选择
Silent1566 Sep 7, 2026
188553a
merge: synchronize latest fish2018 main updates
Silent1566 Sep 7, 2026
adeabec
docs: record C4 upstream merge closure
Silent1566 Sep 7, 2026
8163e6f
merge: 合并 beta 最新代码并完成 dev4 复评
Silent1566 Sep 7, 2026
ab0b54c
Merge remote-tracking branch 'bd/beta' into dev
YaChengMu Sep 7, 2026
8673e26
Merge remote-tracking branch 'bd/dev4' into dev
YaChengMu Sep 7, 2026
d1ca2d2
优化 LitePan 风格剧名识别清洗
Silent1566 Sep 7, 2026
b158b71
merge beta and review lab ABI selection
Silent1566 Sep 7, 2026
0b3e06e
Merge pull request #223 from Silent1566/dev1
Silent1566 Sep 7, 2026
1f37b72
Merge pull request #222 from Silent1566/dev4
Silent1566 Sep 7, 2026
57932a7
fix: prevent mobile personal settings inflation crash
Silent1566 Sep 7, 2026
a6eb0e9
fix(tv): restore wallpaper settings entry
Silent1566 Sep 7, 2026
f8b41fd
merge: 合并 beta 最新代码并完成 dev2 复评
Silent1566 Sep 7, 2026
fca898f
合并 beta 最新代码并完成 dev3 复评
Silent1566 Sep 7, 2026
7e6fd54
merge: resolve PR 224 conflicts with beta
Silent1566 Sep 7, 2026
f0e9ab7
Merge pull request #225 from Silent1566/dev3
Silent1566 Sep 7, 2026
161b190
Merge pull request #224 from Silent1566/dev2
Silent1566 Sep 7, 2026
4425e9c
fix(tv): restore outer wallpaper settings
Silent1566 Sep 7, 2026
db59f3e
merge: 合并 beta 最新代码并完成 dev1 复评
Silent1566 Sep 7, 2026
03e3941
Merge pull request #226 from Silent1566/dev1
Silent1566 Sep 7, 2026
dbea2b9
merge: 合并 beta 最新代码并完成 dev4 复评
Silent1566 Sep 7, 2026
58c6ef2
Merge pull request #227 from Silent1566/dev4
Silent1566 Sep 7, 2026
7ab86f6
fix(tv): reset category focus to top row
Silent1566 Sep 7, 2026
d602973
修复电视端原生增强首帧与选集工具栏闪烁
Silent1566 Sep 7, 2026
023058b
fix(tv): keep category focus while scrolling content top
Silent1566 Sep 7, 2026
3bb2ff0
feat(touch): 适配 TV 端搜索结果站源触摸滚动与结果位置、首页触摸不切类别及播放器手势复用(保守版)
Silent1566 Sep 7, 2026
0f37b48
Merge remote-tracking branch 'origin/beta' into dev4
Silent1566 Sep 7, 2026
17f6e3a
Merge pull request #228 from Silent1566/dev4
Silent1566 Sep 7, 2026
410c530
merge: 同步 beta 并修复电视端详情首帧复用闪烁
Silent1566 Sep 7, 2026
08be6b0
merge: 同步 beta 分类滚动位置修复
Silent1566 Sep 7, 2026
9fc936f
Merge pull request #229 from Silent1566/dev2
Silent1566 Sep 7, 2026
075b9d8
fix: use bound TMDB episode for long-press detail
Silent1566 Sep 7, 2026
804d83f
fix(fusion): add MPV script button entry matching native mode visibil…
Silent1566 Sep 7, 2026
235d31a
feat(tv): complete R2 touch adaptation
Silent1566 Sep 7, 2026
ff6f656
merge: 同步远端 beta 最新代码
Silent1566 Sep 7, 2026
ca4d79d
Merge remote-tracking branch 'origin/beta' into dev1
Silent1566 Sep 7, 2026
1882ec6
fix(fusion): 修复详情页 MPV 自定义按钮焦点导航
Silent1566 Sep 7, 2026
1f35894
合并 beta 最新代码并完成 dev3 TMDB 详情复评
Silent1566 Sep 7, 2026
e8b0b56
Merge pull request #231 from Silent1566/dev3
Silent1566 Sep 7, 2026
a45630f
Merge pull request #230 from Silent1566/dev2
Silent1566 Sep 7, 2026
4ec0fa5
Merge pull request #232 from Silent1566/dev1
Silent1566 Sep 7, 2026
42f17a2
remove 1.2x from shortcut speed presets
Silent1566 Sep 7, 2026
238882b
Merge pull request #233 from Silent1566/release/v5.6.0-beta-202609071511
Silent1566 Sep 7, 2026
a4e68ca
Merge pull request #234 from Silent1566/dev3
Silent1566 Sep 7, 2026
619ed77
docs: design TweakCN-style theme color system
Silent1566 Sep 7, 2026
7e12d70
fix(tv): preserve horizontal search source focus navigation
Silent1566 Sep 7, 2026
341da7f
feat(theme): implement mobile theme profile editor phase A+B
Silent1566 Sep 7, 2026
fb30e58
fix: restore TV TMDB person filter remote focus
Silent1566 Sep 8, 2026
636dbce
merge: 同步 beta 并修复触摸与 TMDB 复评问题
Silent1566 Sep 8, 2026
9c77828
feat(theme): implement native semantic token binding phase C
Silent1566 Sep 8, 2026
0b8936c
Merge pull request #235 from Silent1566/dev2
Silent1566 Sep 8, 2026
0316262
feat(theme): implement import/export and TweakCN adaptation for theme…
Silent1566 Sep 8, 2026
a8c3965
fix(lab): use php8.3 binary in PHP commands
Silent1566 Sep 8, 2026
e09e785
dev3: 合并 beta 最新代码并完成 TMDB 人物焦点适配 (2026-09-08)
Silent1566 Sep 8, 2026
0518105
Merge pull request #236 from Silent1566/dev3
Silent1566 Sep 8, 2026
1806e46
fix(lab): use php8.3 in Ubuntu PHP commands
Silent1566 Sep 8, 2026
253ffaa
Merge pull request #237 from Silent1566/dev2
Silent1566 Sep 8, 2026
cb72299
feat(theme): complete mobile theme import export flow
Silent1566 Sep 8, 2026
32ace88
feat(theme): implement TV theme focus binding and local catalog/cache…
Silent1566 Sep 8, 2026
e4b6e9e
merge: 同步 beta 并修复主题导入安全边界
Silent1566 Sep 8, 2026
ae64c42
docs: 记录 beta 同步任务关闭证据
Silent1566 Sep 8, 2026
74e5721
Merge pull request #238 from Silent1566/dev1
Silent1566 Sep 8, 2026
0f35d79
Merge remote-tracking branch 'bd/beta' into dev
YaChengMu Sep 8, 2026
6c27c92
Merge remote-tracking branch 'bd/main' into dev
YaChengMu Sep 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 5 additions & 1 deletion .codex/scripts/task_guard.sh
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,11 @@ finish_task() {
[[ -n "$path" ]] || continue
path_matches_file "$path" "$state_dir/protected" && continue
path_matches_file "$path" "$state_dir/scope" || continue
git add -A -- "$path"
if [[ -e "$path" || -L "$path" ]]; then
git add -A -- "$path"
else
git add -u -- .
fi
task_change_count=$((task_change_count + 1))
done < <(list_dirty)
((task_change_count > 0)) || safety_gate "no task-owned changes to commit"
Expand Down
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
*.patch whitespace=-blank-at-eol,-blank-at-eof
4 changes: 2 additions & 2 deletions .github/scripts/publish-oci-apks.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ mkdir -p "$(dirname "$metadata_file")"
printf '{}\n' > "$metadata_file"

if [[ -z "$repository_input" || -z "$username" || -z "$token" || -z "$release_tag" ]]; then
echo "OCI publishing skipped: configure vars.OCI_REPOSITORY and OCI credentials."
exit 0
echo "OCI publishing requested but vars.OCI_REPOSITORY, OCI credentials, or RELEASE_TAG are missing." >&2
exit 1
fi

if ! command -v oras >/dev/null 2>&1; then
Expand Down
115 changes: 92 additions & 23 deletions .github/workflows/android-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
required: false
type: string
release_channel:
description: "Release channel, auto uses beta on fongmi-sync"
description: "Release channel, auto uses beta on dev/fongmi-sync and stable on main"
required: false
default: auto
type: choice
Expand All @@ -26,7 +26,7 @@ on:
default: false
type: boolean
sync_cnb:
description: "Mirror APKs to CNB Release and sync CNB manifests"
description: "Optionally mirror APKs to CNB Release and sync CNB manifests"
required: false
default: false
type: boolean
Expand All @@ -39,12 +39,17 @@ on:
permissions:
contents: write

concurrency:
group: android-release-update-channel
cancel-in-progress: false

env:
TZ: Asia/Shanghai
CNB_API_ENDPOINT: https://api.cnb.cool
CNB_WEB_ENDPOINT: https://cnb.cool
CNB_REPO_SLUG: fish2035/webhtv-release
CNB_REPO_URL: https://cnb.cool/fish2035/webhtv-release.git
UPDATE_CHANNEL_TAG: update-channel

jobs:
release:
Expand Down Expand Up @@ -78,14 +83,33 @@ jobs:

- name: Install Android packages
run: |
sdkmanager "platform-tools" "platforms;android-37.0" "build-tools;37.0.0"
# API 37 is not published in sdkmanager's stable channel; install the platform archive directly.
sdkmanager "platform-tools" "platforms;android-28" "build-tools;36.0.0"
curl -fsSL -o /tmp/platform-37.zip https://dl.google.com/android/repository/platform-37.0_r01.zip
rm -rf /tmp/platform-37 "$ANDROID_HOME/platforms/android-37"
mkdir -p /tmp/platform-37 "$ANDROID_HOME/platforms"
unzip -q /tmp/platform-37.zip -d /tmp/platform-37
platform_jar="$(find /tmp/platform-37 -name android.jar -print -quit)"
test -n "$platform_jar"
mv "$(dirname "$platform_jar")" "$ANDROID_HOME/platforms/android-37"

- name: Run WebSocket danmaku tests
- name: Run release-critical tests
run: |
chmod +x ./gradlew
./gradlew \
:app:testMobileArm64_v8aDebugUnitTest \
--tests 'com.fongmi.android.tv.player.danmaku.*' \
--tests 'com.fongmi.android.tv.UpdateChannelTest' \
--tests 'com.fongmi.android.tv.UpdaterFutureTest' \
--tests 'com.fongmi.android.tv.utils.GithubTest' \
--tests 'com.fongmi.android.tv.utils.GithubProxyTest' \
--tests 'com.fongmi.android.tv.ui.dialog.AboutDialogLayoutTest' \
--tests 'com.fongmi.android.tv.ui.dialog.UpdateDialogChannelVisibilityTest' \
--tests 'com.fongmi.android.tv.ui.adapter.VodAdapterLayoutTest' \
--no-daemon
./gradlew \
:app:testLeanbackArm64_v8aDebugUnitTest \
--tests 'com.fongmi.android.tv.ui.dialog.UpdateDialogLayoutTest' \
--no-daemon

- name: Resolve release tag
Expand All @@ -95,21 +119,23 @@ jobs:
VERSION_CODE="$(sed -n 's/^[[:space:]]*versionCode[[:space:]]*\([0-9][0-9]*\).*/\1/p' app/build.gradle | head -1)"
CHANNEL="${{ inputs.release_channel }}"
if [ "$CHANNEL" = "auto" ] || [ -z "$CHANNEL" ]; then
if [ "${{ github.ref_name }}" = "fongmi-sync" ]; then
if [ "${{ github.ref_name }}" = "dev" ] || [ "${{ github.ref_name }}" = "fongmi-sync" ]; then
CHANNEL="beta"
else
CHANNEL="stable"
fi
fi
COMMIT_EPOCH="$(git show -s --format=%ct "$GITHUB_SHA")"
TAG_TIME="$(date -d "@$COMMIT_EPOCH" +%Y%m%d%H%M)"
if [ "$CHANNEL" = "beta" ]; then
APK_SUFFIX="-beta"
TAG_PATTERN="^v${VERSION_NAME}-beta-[0-9]{12}$"
TAG_DEFAULT="v${VERSION_NAME}-beta-$(date +%Y%m%d%H%M)"
TAG_DEFAULT="v${VERSION_NAME}-beta-$TAG_TIME"
TAG_EXPECT="v${VERSION_NAME}-beta-yyyyMMddHHmm"
else
APK_SUFFIX=""
TAG_PATTERN="^v${VERSION_NAME}-[0-9]{12}$"
TAG_DEFAULT="v${VERSION_NAME}-$(date +%Y%m%d%H%M)"
TAG_DEFAULT="v${VERSION_NAME}-$TAG_TIME"
TAG_EXPECT="v${VERSION_NAME}-yyyyMMddHHmm"
fi
TAG="${{ inputs.release_tag }}"
Expand All @@ -120,9 +146,12 @@ jobs:
echo "::error title=Invalid release tag::Expected $TAG_EXPECT, got: $TAG"
exit 1
fi
if git rev-parse "$TAG" >/dev/null 2>&1; then
echo "::error title=Release tag exists::$TAG already exists"
exit 1
if EXISTING_TAG_SHA="$(git rev-parse "$TAG^{commit}" 2>/dev/null)"; then
if [ "$EXISTING_TAG_SHA" != "$GITHUB_SHA" ]; then
echo "::error title=Existing release tag targets another commit::$TAG points to $EXISTING_TAG_SHA, expected $GITHUB_SHA"
exit 1
fi
echo "::notice title=Reusing release tag::$TAG already points to this commit"
fi
{
echo "tag=$TAG"
Expand Down Expand Up @@ -186,16 +215,14 @@ jobs:
- name: Set up ORAS
id: oras
if: ${{ inputs.publish_oci }}
continue-on-error: true
uses: oras-project/setup-oras@v1
uses: oras-project/setup-oras@22ce207df3b08e061f537244349aac6ae1d214f6 # v1
with:
url: https://github.com/oras-project/oras/releases/download/v1.3.4/oras_1.3.4_linux_amd64.tar.gz
checksum: f27adb935022d94df8dc77719c322dda592c78a0d57a6f7dcdd8d900b248c454

- name: Publish APKs to OCI Registry
id: oci
if: ${{ inputs.publish_oci && steps.oras.outcome == 'success' }}
continue-on-error: true
env:
DIST_DIR: dist
OCI_METADATA_FILE: build/oci-metadata.json
Expand All @@ -205,10 +232,6 @@ jobs:
OCI_TOKEN: ${{ secrets.OCI_TOKEN }}
run: bash .github/scripts/publish-oci-apks.sh

- name: Report OCI publish failure
if: ${{ inputs.publish_oci && (steps.oras.outcome == 'failure' || steps.oci.outcome == 'failure') }}
run: echo "::warning title=OCI publish unavailable::GitHub release will continue without OCI metadata."

- name: Prepare release notes input
id: release_notes
env:
Expand Down Expand Up @@ -298,12 +321,58 @@ jobs:
PRERELEASE_FLAG="--prerelease"
fi
NOTES="${RELEASE_NOTES:-手动触发 GitHub Actions 构建发布。}"
gh release create "${{ steps.meta.outputs.tag }}" \
--target "$GITHUB_SHA" \
--title "${{ steps.meta.outputs.title }}" \
--notes "$NOTES" \
$PRERELEASE_FLAG \
dist/*.apk dist/*.json
if gh release view "${{ steps.meta.outputs.tag }}" >/dev/null 2>&1; then
gh release upload "${{ steps.meta.outputs.tag }}" dist/*.apk dist/*.json --clobber
else
gh release create "${{ steps.meta.outputs.tag }}" \
--target "$GITHUB_SHA" \
--title "${{ steps.meta.outputs.title }}" \
--notes "$NOTES" \
$PRERELEASE_FLAG \
dist/*.apk dist/*.json
fi

- name: Publish update channel manifests
env:
GH_TOKEN: ${{ github.token }}
run: |
set -euo pipefail
rm -rf channel-manifests other-channel-manifests
mkdir -p channel-manifests other-channel-manifests
cp dist/*.json channel-manifests/

if [ "${{ steps.meta.outputs.channel }}" = "stable" ]; then
OTHER_TAG="$(gh release list --limit 100 --json tagName,isDraft,isPrerelease \
--jq '[.[] | select((.isDraft == false) and (.isPrerelease == true) and (.tagName | test("-beta-[0-9]{12}$")))] | first | .tagName // ""')"
OTHER_PATTERN="*-beta.json"
else
OTHER_TAG="$(gh release list --limit 100 --json tagName,isDraft,isPrerelease \
--jq '[.[] | select((.isDraft == false) and (.isPrerelease == false) and (.tagName | test("^v.+-[0-9]{12}$")))] | first | .tagName // ""')"
OTHER_PATTERN="*.json"
fi

if [ -n "$OTHER_TAG" ]; then
if gh release download "$OTHER_TAG" --pattern "$OTHER_PATTERN" --dir other-channel-manifests; then
for manifest in other-channel-manifests/*.json; do
[ -e "$manifest" ] || continue
if [ "${{ steps.meta.outputs.channel }}" = "beta" ] && [[ "$(basename "$manifest")" == *-beta.json ]]; then
continue
fi
cp "$manifest" channel-manifests/
done
else
echo "::warning title=Channel manifest seed failed::Could not download $OTHER_PATTERN from $OTHER_TAG."
fi
fi

if ! gh release view "$UPDATE_CHANNEL_TAG" >/dev/null 2>&1; then
gh release create "$UPDATE_CHANNEL_TAG" \
--target "$GITHUB_SHA" \
--title "Update channel manifests" \
--notes "Machine-managed stable and beta update manifests." \
--prerelease
fi
gh release upload "$UPDATE_CHANNEL_TAG" channel-manifests/*.json --clobber

- name: Sync to CNB
if: ${{ inputs.sync_cnb }}
Expand Down
102 changes: 102 additions & 0 deletions .github/workflows/delayed-dev-promotion.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: Delayed Dev Promotion

# Git does not retain per-commit remote push timestamps. This workflow promotes
# the newest first-parent dev commit whose commit timestamp is older than the delay.

on:
schedule:
- cron: "17 * * * *"
workflow_dispatch:
inputs:
delay_hours:
description: "Hours a dev commit must age before it is promoted"
required: false
default: "24"
type: string

permissions:
contents: write

concurrency:
group: delayed-dev-promotion
cancel-in-progress: false

env:
TZ: Asia/Shanghai
SOURCE_BRANCH: dev
TARGET_BRANCH: main
DEFAULT_DELAY_HOURS: "24"

jobs:
promote:
name: Promote delayed dev commit to main
runs-on: ubuntu-latest
timeout-minutes: 10

steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Promote eligible dev commit
env:
DELAY_HOURS_INPUT: ${{ github.event.inputs.delay_hours }}
run: |
set -euo pipefail

delay_hours="${DELAY_HOURS_INPUT:-$DEFAULT_DELAY_HOURS}"
if ! printf '%s' "$delay_hours" | grep -Eq '^[0-9]+$'; then
echo "::error title=Invalid delay_hours::Expected a positive integer, got: $delay_hours"
exit 1
fi
if [ "$delay_hours" -lt 1 ]; then
echo "::error title=Invalid delay_hours::Expected delay_hours to be at least 1."
exit 1
fi

git fetch origin \
"+refs/heads/${SOURCE_BRANCH}:refs/remotes/origin/${SOURCE_BRANCH}" \
"+refs/heads/${TARGET_BRANCH}:refs/remotes/origin/${TARGET_BRANCH}"

cutoff="$(date -u -d "${delay_hours} hours ago" +'%Y-%m-%dT%H:%M:%SZ')"
eligible="$(git rev-list --first-parent -n 1 --before="$cutoff" "origin/${SOURCE_BRANCH}" || true)"

if [ -z "$eligible" ]; then
echo "No ${SOURCE_BRANCH} commit is older than ${delay_hours} hours."
exit 0
fi

short="$(git rev-parse --short=12 "$eligible")"
subject="$(git log -1 --format=%s "$eligible")"
echo "Eligible ${SOURCE_BRANCH} commit: ${short} ${subject}"
echo "Cutoff (UTC): ${cutoff}"

if git merge-base --is-ancestor "$eligible" "origin/${TARGET_BRANCH}"; then
echo "${short} is already reachable from ${TARGET_BRANCH}."
exit 0
fi

git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git checkout -B "$TARGET_BRANCH" "origin/${TARGET_BRANCH}"

if ! git merge --no-ff --no-edit "$eligible"; then
echo "::error title=Promotion merge conflict::${SOURCE_BRANCH}@${short} cannot be merged into ${TARGET_BRANCH} cleanly."
exit 1
fi

if ! git push origin "HEAD:refs/heads/${TARGET_BRANCH}"; then
echo "::error title=Promotion push failed::${TARGET_BRANCH} changed concurrently or rejects direct Actions pushes; no force push was attempted."
exit 1
fi

{
echo "## Delayed dev promotion"
echo
echo "Promoted \`${SOURCE_BRANCH}\` commit \`${short}\` to \`${TARGET_BRANCH}\`."
echo
echo "- Delay: ${delay_hours} hours"
echo "- Cutoff (UTC): ${cutoff}"
echo "- Subject: ${subject}"
} >> "$GITHUB_STEP_SUMMARY"
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
.vscode/
.gradle/
build/
.cxx/
dist/
out/
!third_party/mpv-native-overrides/aimagereader-stable/video/out/
Expand All @@ -27,6 +28,12 @@ nostr_副本*.html
__pycache__/
*.pyc
third_party/sources/
app/signing/
.gradle-user-home/
plans/
/docs/
.tokensave
.codebase-memory
graphify-out/
.codex/task-state/

参考/*
Loading