Skip to content

merge(upstream): 同步 Nshpiter/HuaweiPods e2cf07e - #15

Draft
ByteJuno wants to merge 5 commits into
mainfrom
upstream-sync/e2cf07e
Draft

ByteJuno wants to merge 5 commits into
mainfrom
upstream-sync/e2cf07e

Conversation

@ByteJuno

Copy link
Copy Markdown
Owner

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

上游:Nshpiter/HuaweiPods e2cf07e

判断:前三个提交提供可选的连接底部弹窗及其修复,属于可移植的通用界面与连接体验改进,并非仅限 HyperOS 的系统集成。按顺序选择性移植功能部分,不选上游 1.9.4 发布提交。上游实现存在热重载抑制不完整及新增导出入口的安全风险,须在移植时修复,不能原样接入或覆盖 fork 的 ColorOS 定制。

AI 自动处理冲突和CI问题;风险标签不跳过复审或测试。
修复轮数:0

Add a transparent Compose activity that slides in from the bottom when the
pods connect, showing the pod image and battery. The popup appears immediately
on connection while the RFCOMM battery is fetched and then filled in via the
battery-changed broadcast. Behavior is gated by a settings toggle.

(cherry picked from commit 5d51f00eeebe4ddc3eff6f637954a0493bab5a63)
- handle onNewIntent: when another device connects while the popup is
  still open, update the target device and reset the auto-dismiss timer
- add isSessionRestore flag to connectPod; skip popup on hot-reload
  session restore, only show on real connections
- default the bottom popup toggle to off

(cherry picked from commit e48458dbd9a433087d6d8d52c91b5ec8e94d1886)
(cherry picked from commit fd26a900e8b69d69d74833a6639bb5e145d4f9a5)
仅修复本次三个弹窗缺陷:按连接代次保存自动弹窗许可,恢复会话的 AT/RFCOMM 延迟回报也不能重新获得许可;通过校验实际 Bluetooth UID 的 ContentProvider 签发一次性启动凭据,并通过宿主 Binder 核实当前连接会话,首次启动和 singleTop 复用统一校验设置、凭据及会话;电量和断连广播先沿用 fork 的发送方认证,再匹配独立会话 ID 和设备身份,电量更新还须核实宿主会话仍有效。保留跨进程启动,不更改应用 ID、签名、版本、CI、发布流程或已有测试。新增纯逻辑回归测试;未执行 shell 或测试。
仅修复本次底部连接卡片的两个生命周期问题:首次启动及 onNewIntent 继续消费一次性凭据,Activity 重建则通过已保存的会话标识重新关联,并核验该会话已获授权、仍为当前会话、宿主连接有效且弹窗开关开启;恢复失败不回退消费启动凭据。退出动画完成回调在 Activity 层按会话对象身份再次检查,防止旧卡片在 Compose 移除前关闭新卡片。新增设备切换、同地址重连、Activity 重建及恢复校验的仪器回归测试,不修改已有测试、Manifest、应用 ID、版本、签名、依赖或 CI/发布流程。受环境限制未执行测试。
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.

1 participant