Zhou Weidong
|
bea08110c9
|
feat(reward): 新增客户端奖励中心
|
2026-11-13 13:43:38 +08:00 |
|
Vicky
|
67670d46b1
|
feat(auth): 接入 Google 登录
- 登录页保留邮箱与 Google 两个入口,Google 按钮按官方规范改为白底四色图标
- 新增 GoogleAuthService:封装 initialize/authenticate,失败以结果对象返回
- AuthApi 增加 googleLogin,AuthController 增加 signInWithGoogle
- iOS 补充 CFBundleURLTypes 与 GIDClientID,Bundle ID 统一为 com.stormg.lumadrama
- Google 请求期间按钮显示转圈并禁止重复点击
|
2026-11-13 12:30:47 +08:00 |
|
Zhou Weidong
|
59fbd33059
|
feat(category): 分类频道接入榜单快照
|
2026-11-02 14:44:38 +08:00 |
|
Vicky
|
e7399fa3fd
|
feat(auth): 登录页改为 ymb 品牌并支持后台配置背景图
|
2026-10-30 17:14:30 +08:00 |
|
Zhou Weidong
|
1be8ebf1f9
|
refactor(api): 统一响应解析并修复下载错误文案空白
各 *Api 类此前各自实现 data 结构判断,download_api 在结构异常时抛出空
message,界面会显示空白提示。抽出 ResponseDecoders 提供对象、可空对象、
对象数组三种语义,七个文件改为复用;下载侧异常文案与其他接口对齐。
|
2026-10-29 10:44:32 +08:00 |
|
Vicky
|
a3f3481f4f
|
feat: phase1 UI prep — 设备ID系统传递 + 国家本地化展示 + 继续观看直进播放页
设备标识: Android SSAID/ iOS IDFV 原生通道 → Dart DeviceIdProvider
国家解析: 注册/登录从后端 IP → 国家/语言/时区/币种 自动落库
账号资料: 全部本地化展示 (account_display.dart)
我的页: 继续观看卡片点击直接进播放页
|
2026-10-27 15:45:20 +08:00 |
|
Vicky
|
935de13343
|
refactor(core): 平台上报收敛为单个请求头
去掉 device_info_plus 依赖与机型/系统版本,只保留 X-Client-Platform。
|
2026-10-27 14:00:19 +08:00 |
|
Vicky
|
d6df5fbe5f
|
feat(core): 请求头统一上报设备系统与机型
- 新增 DeviceProfileReader,首次读取后缓存,插件不可用时安全降级
- 拦截器为所有请求补 X-Client-Platform / Os / Model,匿名请求同样携带
|
2026-10-27 13:54:28 +08:00 |
|
Zhou Weidong
|
0d785bf1f8
|
feat(library): 支持设备追剧与观看历史
|
2026-10-27 09:54:51 +08:00 |
|
Zhou Weidong
|
c6b3ca9311
|
fix(auth): 禁止刷新接口递归重试
|
2026-10-26 22:49:04 +08:00 |
|
Zhou Weidong
|
188811fde6
|
feat(player): 切集刷新互动计数统计
|
2026-10-26 21:40:39 +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
|
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
|
13a14f3e85
|
feat(theater): 剧场分类列表服务端分页
|
2026-10-21 18:24:14 +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
|
9b31d83e39
|
perf(home): 冷启动提前拉取首页数据
|
2026-10-20 19:51:41 +08:00 |
|
Zhou Weidong
|
7850dfc746
|
style(app): 格式化并拆分长函数
|
2026-10-20 04:38:36 +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
|
136ee74618
|
feat(app): 完成 P0 钱包解锁、下载落盘与手机号登录
|
2026-10-19 23:46:47 +08:00 |
|
Zhou Weidong
|
44f6feb249
|
feat(account): 接入个人中心接口模型
|
2026-10-19 09:47:06 +08:00 |
|
Zhou Weidong
|
b870956665
|
feat(flutter): 增加轮播自动播放与站内通知
|
2026-10-17 16:50:25 +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 |
|
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
|
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 |
|
Vicky
|
feecc349a0
|
chore(client): 归档原型阶段新增文件(配置、主题、模型与测试)
为什么:上一批归档只覆盖了「已跟踪文件的修改」,原型阶段新增的文件(app_config、theme、
home_feed/play_ticket 模型、catalog_api、测试目录等)还是未入库状态 —— 而已入库的代码会 import 它们,
留在工作区会导致 HEAD 处的代码编译不过。一并归档,让 HEAD 自洽。
纯归档,无行为改动。
|
2026-10-15 17:53:45 +08:00 |
|
Vicky
|
e1b98df509
|
feat(client): C 端 1-2 账号链路(邮箱登录/注册 + 令牌与 401 + 匿名/登录分叉)
为什么:客户端此前完全没有账号概念(mine 页的"登录"只是本地 demo 开关),
而受限动作(收藏/评论)要对到具体账号。本批把账号链路接上,为后续互动、进度同步、下载打底。
- AuthApi + AuthController + AuthSessionStore:注册/登录/登出/刷新,令牌与设备号存 shared_preferences
(用 SharedPreferencesAsync,与 engagement 仓库同一套 API)
- ApiClient:统一带 Authorization 与 X-Device-Id;401 自动刷新一次并重试,刷新失败清登录态走 onUnauthorized
- 登录/注册页(pages/auth,沿用 binding/logic/view 与现有视觉):邮箱格式、密码 8-64 位含字母数字本地先校验,
错误提示走 l10n;登录/注册一键切换
- 匿名/登录分叉:首页、发现、详情保持匿名可看;收藏/点赞等受限动作走 ensureSignedIn() 弹底部提示引导登录
- mine 页展示真实账号(昵称 + uid),拿不到才回落到演示文案
- 测试:新增 auth 控制器(注册落盘/401 刷新重试/刷新失败清会话/登出)与登录页(校验/切换)用例;
widget_test 改为预置本地会话(账号不再是本地开关);修掉 playback 用例对 host 大小写的环境依赖断言
门禁:flutter analyze 0 问题;flutter test 148 全过。
|
2026-10-15 17:53:35 +08:00 |
|