fix: 首次绑定后不跳转首页,导航不再等待API返回

将导航提到协程外部立即执行,API确认异步进行,
避免网络异常导致协程取消而跳不到首页。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
dongliang
2026-05-09 21:39:58 +09:30
parent 24250ef7a6
commit ee33cf7ca1

View File

@@ -166,19 +166,23 @@ class BindFragment : BaseFragment<FragmentBindBinding>() {
headUrl = bindInfo.headUrl
)
// 调用 API 确认绑定,然后导航到首页
// 调用 API 确认绑定(异步,不阻塞导航)
viewLifecycleOwner.lifecycleScope.launch {
val params = hashMapOf<String, Any>(
"imei" to devicePrefs.imei,
"userId" to bindInfo.userId
)
safeApiCall { commonApi.bindWatchConfirm(params) }
Timber.d("绑定: 确认 API 已调用,导航到首页")
// 导航到首页
findNavController().navigate(R.id.action_bind_to_home)
try {
val params = hashMapOf<String, Any>(
"imei" to devicePrefs.imei,
"userId" to bindInfo.userId
)
safeApiCall { commonApi.bindWatchConfirm(params) }
Timber.d("绑定: 确认 API 已调用")
} catch (e: Exception) {
Timber.w(e, "绑定: 确认 API 异常,不影响导航")
}
}
// 导航到首页(不等 API 返回,用户信息已存本地)
findNavController().navigate(R.id.action_bind_to_home)
} catch (e: Exception) {
Timber.e(e, "绑定: 处理绑定消息异常")
// 异常时恢复二维码显示