Skip to content

port(upstream): 移植 Nshpiter/HuaweiPods 1 个提交(到 dc5b9d1) - #6

Merged
ByteJuno merged 5 commits into
mainfrom
upstream-sync/dc5b9d1
Oct 27, 2026
Merged

ByteJuno merged 5 commits into
mainfrom
upstream-sync/dc5b9d1

Conversation

@ByteJuno

Copy link
Copy Markdown
Owner

由 upstream_merge.py 自动生成,审核模型 gpt-6.1-sol。

上游:Nshpiter/HuaweiPods 115f080..dc5b9d1,1 个提交,移植其中 1 个

判断(风险 中):这条提交虽以发版命名,但包含 FreeBuds 4 兼容适配、FreeClip 2 状态回读和 FreeBuds 7i 协议纠错,值得选择性移植。剔除小米通知确认、补发及设置页改动;HuaweiHfpController.kt 本次修改也属于该通知恢复链路,排除可避免引入小米接口依赖或改变 fork 的生命周期行为。上游版本号、发布说明和文档不移植,已删除的文件不恢复。

  • 新增 FreeBuds 4 独立识别、电量、降噪档位、手势、佩戴检测及三种音效,仍需该机型实测。
  • FreeClip 2 开关改为显示耳机实际回读状态,缺失响应不再被当作关闭。
  • FreeClip 2 设置修改后回读确认,并支持进入页面、返回前台和手动刷新。
  • 修正 FreeBuds 7i 固定空间音频与头部跟踪的写入及状态显示映射。
  • 统一 FreeClip 2 设置分组和音效入口布局;适用的状态栏图标刷新路径可降低稳定期调用频率并在熄屏时停止。

注意:FreeClip2Controls.kt 的 diff 被截断,移植前补齐,检查暂停/恢复、过期回调和低时延策略保存,保留蓝牙宿主写入以免争抢连接。HeadsetStateDispatcher 只接入 ColorOS 实际使用的图标刷新优化,保留现有热重载交接、会话、生命周期分发及广播信任校验。新增 FreeBuds 4 后检查 fork 专属控制、机型选择、所有穷举分支及官方图片映射,并运行单元测试和 Debug/Release 构建;上游验证不能替代 ColorOS 实测。

  • 模型解决了 2 个冲突文件:app/src/main/java/moe/chenxy/huaweipods/hook/HeadsetStateDispatcher.kt, app/src/main/java/moe/chenxy/huaweipods/pods/HuaweiGestureController.kt
  • 按审核意见没移植的文件 16 个:.github/release-notes/1.9.2.md, README.md, README_EN.md, app/build.gradle.kts, app/src/main/java/moe/chenxy/huaweipods/hook/MiBluetoothToastHook.kt…
  • 复审发现:FreeClip2Controls.kt 的差异被截断,无法核验新增开关写入、低时延偏好保存及生命周期回调是否完整保留,补齐完整差异前不能确认可合入。;新增 FreeBuds 4 的测试要求官方图片映射和 ANC 协议支持,但变更清单未包含 OfficialImageCatalogPolicy 的生产代码修改,且 HuaweiHfpController 已恢复为 fork 原样,需要核对这些实现是否支持新增路由并提供相关测试结果。
  • 风险高或复审没通过,CI 过了也不会自动合并,等你看 PR

🤖 Generated with Claude Code

Nshpiter and others added 5 commits October 26, 2026 22:45
(cherry picked from commit dc5b9d14e9030be95b178699d674d1a3217e1e6d)
…新会话状态、触发 UI 回调或持久化低时延策略。本次仅修复该问题:统一管理读取和写入票据;暂停、销毁时失效票据并复位 busy 状态、结束旧 UI 等待;过期及重复回调不再更新状态、执行完成回
…一性;音效删除任意字节子串搜索的 fallback,统一使用已有 HuaweiEqualizerCodec 的严格 TLV 解析。新增独立回归测试,覆盖错误类型、错误长度、重复字段、跨字段误匹
…ddress、route 记忆的会话状态,路由切换或组件退出时使旧会话失效;写入回调先检查会话有效性,过期回调不能更新状态或显示失败 Toast。新增不依赖 Compose UI 测试库的 i
…eeClip 2 专用 verified 宿主操作,将写出、最多两次耳机回读和策略提交放入同一事务;提交前同时检查手动操作 token、设备会话和客户端请求期限。页面不再先调用有提前保存副作用
@ByteJuno
ByteJuno merged commit e18aecf into main Oct 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants