You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Rodger-Wang
c95996c251
修 iOS 上切到同传/面对面时字幕小窗关不掉、且中断 changeTranslationMode
_floatingWindowManager 是 late 且只在 onInit 的 `Platform.isAndroid` 分支里赋值
(iOS 走 initPlatformState 那套 SubtitlePip)。全项目 5 处引用里 4 处都带平台守卫,
**只有 _disableFloatingWindow() 那处没有** —— 而它恰恰会被 changeTranslationMode 调到
(从多媒体/通话翻译切到同传或面对面时,小窗不受支持要自动关掉)。
iOS 上后果是连锁的,且没有一条指向真因:LateInitializationError 从
changeTranslationMode 中途抛出,后面的 _reinitializeAsrService() 再也走不到;
小窗又没真的停掉,继续浮在同传/面对面页上盖住顶部的标题与按钮;偏偏小窗开关按钮
只在 call/audioVideo 两个模式才渲染,用户连关都关不掉。
- _disableFloatingWindow() 分平台,并收敛成 toggle / onClose / changeTranslationMode
三处共用的唯一出口;Android 分支补 Get.isRegistered 守卫。
- 切到不支持小窗的模式时改成**无条件**关一次,不再依赖 isFloatingWindowEnabled:
iOS 上这个标志位由 initPlatformState 里那次异步的 SubtitlePip.isActive() 回填,
和 onInit 紧接着调用的 changeTranslationMode 是竞态,回填晚一步就整个跳过。
没开着时多关一次是无害的。
真机验证(iPhone 12 / iOS 26.6.2):改前在运行中的 App 里直接取 _floatingWindowManager
确实抛 LateInitializationError;改后走完整路径(多媒体翻译 → 开小窗 → 切同传),
changeTranslationMode 正常返回、pip=false、widget 树里 ErrorWidget 数为 0。
安卓侧(华为 ALN-AL80,debug + release)同传/面对面两页渲染不受影响。
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
1 month ago |
| .. |
|
bindings
|
apps/client 首次入库(Flutter 移动端)
|
2 months ago |
|
controllers
|
修 iOS 上切到同传/面对面时字幕小窗关不掉、且中断 changeTranslationMode
|
1 month ago |
|
middleware
|
AI 页闸门提示改走节流,别再连点连弹
|
1 month ago |
|
models
|
apps/client 首次入库(Flutter 移动端)
|
2 months ago |
|
views
|
设备图改成按设备名从本地取;修同传页 GetX 报错遮挡与 AI 页 2px 溢出
|
1 month ago |