Zhou Weidong
|
222bacdeeb
|
fix(player): 优化上下滑切集黑屏
|
2026-10-26 13:15:56 +08:00 |
|
Zhou Weidong
|
8b50b5bd06
|
feat(app): 客户端展示多语言并支持筛选分页
|
2026-10-24 17:20:24 +08:00 |
|
Zhou Weidong
|
ef29fc5f15
|
feat(app): 完善播放协议搜索与空状态
|
2026-10-23 12:38:47 +08:00 |
|
Zhou Weidong
|
f8500bbaca
|
fix(player): 完善进度预览清屏与下拉刷新
|
2026-10-23 03:18:24 +08:00 |
|
Zhou Weidong
|
f1b5418954
|
feat(recommend): 新增分区流全部短剧与剧单
|
2026-10-22 17:23:22 +08:00 |
|
Zhou Weidong
|
dd96792e33
|
feat(home): 首页改为三列探索网格
|
2026-10-22 17:03:45 +08:00 |
|
Zhou Weidong
|
5b2d8445dc
|
refactor(watch): 观看历史改用分页契约
|
2026-10-22 13:21:27 +08:00 |
|
Zhou Weidong
|
a48433f01d
|
fix(profile): 修复我的收藏与观看历史列表不显示
|
2026-10-22 13:09:55 +08:00 |
|
Zhou Weidong
|
78114fa46d
|
fix(library): 优化观看历史标题加载
|
2026-10-22 12:42:58 +08:00 |
|
Zhou Weidong
|
235b50598a
|
feat(library): 收藏与观看历史支持分页
|
2026-10-22 12:34:27 +08:00 |
|
Zhou Weidong
|
7a588898fa
|
feat(debug): 增加 HTTP 请求响应日志
|
2026-10-22 12:15:51 +08:00 |
|
Zhou Weidong
|
12b733d111
|
feat(player): 进度条拖动预览改用雪碧图
|
2026-10-22 11:40:23 +08:00 |
|
Zhou Weidong
|
51c56d884b
|
feat(player): 增加进度条拖动画面预览
|
2026-10-22 11:03:17 +08:00 |
|
Zhou Weidong
|
5268adc999
|
fix(player): 记住拖动后的实际播放位置
|
2026-10-22 10:41:01 +08:00 |
|
Zhou Weidong
|
759a02375a
|
fix(player): 修复详情往返播放位置丢失
|
2026-10-22 10:27:58 +08:00 |
|
Zhou Weidong
|
a25c500371
|
feat(player): 保持屏幕常亮并自动恢复播放
|
2026-10-22 10:17:43 +08:00 |
|
Zhou Weidong
|
f3ec12e3c3
|
fix(player): 修复切换频道时复用已释放的视频控制器
|
2026-10-21 20:00:15 +08:00 |
|
Zhou Weidong
|
13a14f3e85
|
feat(theater): 剧场分类列表服务端分页
|
2026-10-21 18:24:14 +08:00 |
|
Zhou Weidong
|
677e49fa6e
|
fix(home): 首切频道预取并保留播放画面
|
2026-10-21 17:53:58 +08:00 |
|
Zhou Weidong
|
3c4d65a9b2
|
fix(home): 修复频道快速切换卡 loading
|
2026-10-21 17:46:42 +08:00 |
|
Zhou Weidong
|
ae61d9ec4c
|
feat(home): 首页按内容类型分频道 Feed 并支持分页
|
2026-10-21 17:33:52 +08:00 |
|
Zhou Weidong
|
83822a0cbb
|
feat(player): 点赞与评论改为按集
|
2026-10-21 16:15:29 +08:00 |
|
Zhou Weidong
|
5e2b8d9e4d
|
fix(player): 收藏与评论数实时刷新
|
2026-10-21 11:39:58 +08:00 |
|
Zhou Weidong
|
92bfc76e50
|
feat: C3 客户端埋点 SDK(EventTracker 批量上报 + 核心事件)
|
2026-10-21 06:27:56 +08:00 |
|
Zhou Weidong
|
9b31d83e39
|
perf(home): 冷启动提前拉取首页数据
|
2026-10-20 19:51:41 +08:00 |
|
Zhou Weidong
|
730a96559b
|
feat(flutter): 增加目录加载诊断与前台重试
|
2026-10-20 18:17:36 +08:00 |
|
Zhou Weidong
|
794dc87083
|
feat(flutter): 重做收藏与观看历史页
|
2026-10-20 16:31:59 +08:00 |
|
Zhou Weidong
|
82fe237c24
|
fix(flutter): 首页 feed 静默刷新与进度条细节
|
2026-10-20 14:11:42 +08:00 |
|
Zhou Weidong
|
bed6bbb75b
|
feat(flutter): 播放页互动数量与评论面板收紧
|
2026-10-20 12:06:21 +08:00 |
|
Zhou Weidong
|
8c43e9e385
|
feat(flutter): 重构播放页并增加语言切换
|
2026-10-20 11:01:38 +08:00 |
|
Zhou Weidong
|
35338cbfc8
|
feat(app): 剧场页九宫格与极简我的页
|
2026-10-20 05:28:51 +08:00 |
|
Zhou Weidong
|
7850dfc746
|
style(app): 格式化并拆分长函数
|
2026-10-20 04:38:36 +08:00 |
|
Zhou Weidong
|
2b2b7e9913
|
feat(app): 播放器增加清晰度档位入口
|
2026-10-20 04:37:42 +08:00 |
|
Zhou Weidong
|
ade0cc3566
|
feat(app): 搜索改为调用后端并渲染卡片结果
|
2026-10-20 04:34:12 +08:00 |
|
Zhou Weidong
|
730e38622f
|
feat(app): 接入金币充值与会员商品下单
|
2026-10-20 04:32:03 +08:00 |
|
Zhou Weidong
|
dfc650456a
|
feat(app): 展示真实点赞与评论计数
|
2026-10-19 23:56:12 +08:00 |
|
Zhou Weidong
|
136ee74618
|
feat(app): 完成 P0 钱包解锁、下载落盘与手机号登录
|
2026-10-19 23:46:47 +08:00 |
|
Zhou Weidong
|
de941c841c
|
fix(app): 对齐 release 修复(播放明文HTTP、shared_preferences 降级防崩溃、双网络访问)
|
2026-10-19 22:43:04 +08:00 |
|
Zhou Weidong
|
da095115d4
|
feat(account): 增加账号中心页面与入口
|
2026-10-19 09:50:23 +08:00 |
|
Zhou Weidong
|
ef7f4ce3b6
|
feat(account): 同步资料保存后的登录态
|
2026-10-19 09:47:28 +08:00 |
|
Zhou Weidong
|
44f6feb249
|
feat(account): 接入个人中心接口模型
|
2026-10-19 09:47:06 +08:00 |
|
Zhou Weidong
|
c1cb7d1c11
|
feat(ui): 更新品牌启动页与选集交互
|
2026-10-19 09:28:16 +08:00 |
|
Zhou Weidong
|
b870956665
|
feat(flutter): 增加轮播自动播放与站内通知
|
2026-10-17 16:50:25 +08:00 |
|
Zhou Weidong
|
732483465c
|
fix(flutter): 修复导航白线与观看记录错误透传
|
2026-10-17 16:41:24 +08:00 |
|
Zhou Weidong
|
d361034226
|
feat(flutter): 接入互动评论点赞举报
|
2026-10-17 15:26:42 +08:00 |
|
Zhou Weidong
|
cc4d7c5a9d
|
feat(flutter): 接入分类记录收藏与下载授权
|
2026-10-17 14:49:16 +08:00 |
|
jianghaifeng
|
00280ca0da
|
merge: 同步 main 的作者标识提交到 develop
main 的 eaf8fb4 机械性地给全仓加了 // Author 头,develop 侧包名已改 fruitshorts、
并删除了 demo_media/home_feed_category/home_feed_sections 三个文件,故按 develop 口径解决冲突:
保留 fruitshorts 包名与删除结果,补回 Author 头。
|
2026-10-17 13:48:31 +08:00 |
|
Vicky
|
d7eff4ca59
|
feat(client): 对接详情/播放/进度续看/收藏(K1 看剧闭环)+ 三态 UI
后端接口从 6 个扩到 13 个,全部走真数据:
- 新增 api:playback_api(/app/episodes/{id}/play)、watch_api(/app/watch/*)、
library_api(/app/favorites*);票据从 CatalogApi 搬到 PlaybackApi
- 新增 repository:PlaybackRepository(含票据 TTL 缓存,默认 10 分钟,时钟可注入)、
FavoriteRepository、WatchHistoryRepository 换成服务端模型(每剧一条续看记录,删掉 demoProfileId)
- PlayerLogic:起播前取票(拿不到给三态 UI,失败可重试);accessType 驱动锁定文案,
不在前端猜;签名地址原样交给播放器(只补 host,不动 path/query);
进度上报节流 5s → 10s,切集/退出/切后台各补一次,播完带 finished
- 续看定位:服务端记录里的那一集才 seek(其它集从头播),续看位置进详情/播放页时读一次
- FavoriteController:收藏以服务端为准,乐观更新 + 失败回滚;退出登录清空
- UI 三态:详情页(加载/失败可重试/空剧集 + 续看进度条 + 收藏按钮)、
播放页(票据加载中/失败可重试/后端判定不可播)、我的页(续看失败可重试、收藏三态、最近观看)
- l10n 新增 8 个键(en/zh/id 三份):网络/进度/收藏失败、锁定提示、续看文案等
测试:flutter test 188 全过(存量 27 个测试文件未跑红);新增票据过期重取、进度节流、
续看定位、收藏回滚、签名 query 原样保留、真实后端端到端联调(live_watch_flow)
|
2026-10-16 17:39:05 +08:00 |
|
Vicky
|
94ff9f1177
|
fix(client): 兼容后端 Long 字段字符串化(id 与计数)
后端 J1 起 Long/long 一律以字符串下发(含雪花 id 与 viewCount/expiresIn)。
客户端 id 方向本来就是 (json['id'] ?? '').toString(),不受影响;会被 as num? 打挂的
是 Long 计数,这里加统一兼容解析并替换 3 处:
- lib/core/data/models/json_numbers.dart(新增,接受数字或数字字符串)
- lib/core/data/models/auth_session.dart(expiresIn,后端 long)
- lib/core/data/models/drama.dart(viewCount,后端 Long ×2)
- test/core/json_id_parsing_test.dart(新增 8 条回归用例)
其余 as num?(durationSec/unlockCoin/number/totalEpisodes/freeEpisodes/code)对应后端
Integer/int,仍是数字,未改动;未碰任何业务逻辑与 UI。
|
2026-10-16 16:44:02 +08:00 |
|
Vicky
|
1853e1845c
|
refactor(client): 网络层由官方 http 换成 dio(对外行为不变)
为什么:权威文档(AGENTS.md / CODING_STANDARDS.md)强制网络层用 dio,差异清单 A 组第 1 题
用户裁定选 A;原来用官方 http 是在无文档状态下按口头要求选的。
- ApiClient 改用 dio + BaseOptions(validateStatus 恒真、8s 超时、ResponseType.bytes 自行 UTF-8 解码)
- 新增 AuthHeaderInterceptor(Authorization / X-Device-Id)与 EnvelopeInterceptor
(解包 {code,message,data} + 错误码映射 + 401 判定)
- 401 → 刷新 → 重发一次在 ApiClient 里编排,刻意不放在拦截器内重发:dio 的排队拦截器
在回调里再发请求会自锁
- 接口层(auth_api/catalog_api)签名、全部 controller/logic/page 未改动
- 测试:新增假 dio adapter 替代 MockClient,断言口径一条未改;用例名改为 should_<期望>_when_<条件>;
新增 api_client_test(解包/错误映射/请求头/查询参数/跳过重试)与 live_auth_test(真实后端 POST 链路)
- pubspec:加 dio、移除已无引用的 http
- 实测:dart analyze lib test 零告警;flutter test 155 全过;真实联调(8081)GET/POST 链路均通
|
2026-10-16 09:30:46 +08:00 |
|