Updated on 2026-08-14

This commit is contained in:
Tangem 2024-11-10 18:25:23 +04:00
parent 96a748c904
commit a950ca16b7
8 changed files with 55 additions and 24 deletions

View file

@ -36,7 +36,8 @@ internal class DefaultSwapServiceLoader @Inject constructor(
private val dispatchers: CoroutineDispatcherProvider,
) : SwapServiceLoader {
private val initializationStatuses: Map<UserWalletId, InitializationStatusFlow> = mapOf()
private val initializationStatuses =
MutableStateFlow<Map<UserWalletId, InitializationStatusFlow>>(value = emptyMap())
override suspend fun update(userWalletId: UserWalletId, userTokens: UserTokensResponse) {
withContext(dispatchers.io) {
@ -73,9 +74,18 @@ internal class DefaultSwapServiceLoader @Inject constructor(
}
private fun getInitializationStatusInternal(userWalletId: UserWalletId): InitializationStatusFlow {
return initializationStatuses.getOrDefault(
key = userWalletId,
defaultValue = MutableStateFlow(value = lceLoading()),
)
val initializationStatus = initializationStatuses.value.get(key = userWalletId)
if (initializationStatus != null) return initializationStatus
val default: InitializationStatusFlow = MutableStateFlow(value = lceLoading())
initializationStatuses.update {
it.toMutableMap().apply {
put(key = userWalletId, value = default)
}
}
return default
}
}