fix(sdk): 同步 iOS — transferMedia 入口立即把 _transferProgress 归零

旧实现里 _transferProgress 只在 transferFile() 内部才置 0,但
transferMedia 要先走 validateMediaFormat → aniConverter.convert →
prepareTransfer 这条数秒级异步链,期间 StateFlow 还停留在上次结束
的 100。集成方一 collect 就看到旧值 100,体感像「上次进度被带过来」。

修法:transferMedia 在 ensureConnected() 后立即 _transferProgress.value = 0,
collector 立即收到 0;后续 transferFile() 内的 = 0 因 StateFlow 的
distinct-value 语义被天然跳过。

对齐 ios:ed7de42。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
km2023
2026-05-20 16:04:44 +08:00
parent 6bdfa4d39a
commit 00a17fbd6a

View File

@@ -500,6 +500,7 @@ class DuooomiBleSDK(context: Context, val config: DuooomiBleConfig) {
suspend fun transferMedia(fileUrl: String) {
ensureConnected()
_transferProgress.value = 0
val url = fileUrl.trim()
if (url.isEmpty()) throw DuooomiBleError.TransferFailed("Empty file URL")