Updated on 2026-08-14

This commit is contained in:
Tangem 2026-01-30 21:16:20 +03:00
parent 047a48eaf0
commit e7f607001b
6 changed files with 49 additions and 29 deletions

View file

@ -190,7 +190,10 @@ internal class HomeModel @Inject constructor(
return
}
saveWalletUseCase(userWallet).fold(
saveWalletUseCase(
userWallet = userWallet,
analyticsSource = AnalyticsParam.ScreensSources.Intro,
).fold(
ifLeft = {
delay(HIDE_PROGRESS_DELAY)
setLoading(false)

View file

@ -2,6 +2,7 @@ package com.tangem.features.onboarding.v2.multiwallet.impl.child.chooseoption.mo
import androidx.compose.runtime.Stable
import com.tangem.core.analytics.api.AnalyticsEventHandler
import com.tangem.core.analytics.models.AnalyticsParam
import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer
@ -50,17 +51,20 @@ internal class Wallet1ChooseOptionModel @Inject constructor(
val scanResponse = params.multiWalletState.value.currentScanResponse
val userWallet = createUserWallet(scanResponse)
saveWalletUseCase(userWallet, canOverride = true)
.onRight {
cardRepository.finishCardActivation(scanResponse.card.cardId)
saveWalletUseCase(
userWallet = userWallet,
canOverride = true,
analyticsSource = AnalyticsParam.ScreensSources.Onboarding,
).onRight {
cardRepository.finishCardActivation(scanResponse.card.cardId)
// save user wallet for manage tokens screen
params.multiWalletState.update {
it.copy(resultUserWallet = userWallet)
}
returnToParentFlow.emit(Unit)
// save user wallet for manage tokens screen
params.multiWalletState.update {
it.copy(resultUserWallet = userWallet)
}
returnToParentFlow.emit(Unit)
}
}
}

View file

@ -135,17 +135,20 @@ internal class MultiWalletCreateWalletModel @Inject constructor(
val scanResponse = params.multiWalletState.value.currentScanResponse
val userWallet = createUserWallet(scanResponse)
saveWalletUseCase(userWallet, canOverride = true)
.onRight {
cardRepository.finishCardActivation(scanResponse.card.cardId)
saveWalletUseCase(
userWallet = userWallet,
canOverride = true,
analyticsSource = AnalyticsParam.ScreensSources.Onboarding,
).onRight {
cardRepository.finishCardActivation(scanResponse.card.cardId)
// save user wallet for manage tokens screen
params.multiWalletState.update {
it.copy(resultUserWallet = userWallet)
}
onDone.emit(Step.Done)
// save user wallet for manage tokens screen
params.multiWalletState.update {
it.copy(resultUserWallet = userWallet)
}
onDone.emit(Step.Done)
}
}
}

View file

@ -4,6 +4,7 @@ import androidx.compose.runtime.Stable
import arrow.core.getOrElse
import com.tangem.common.CompletionResult
import com.tangem.common.core.TangemSdkError
import com.tangem.core.analytics.models.AnalyticsParam
import com.tangem.core.decompose.di.ModelScoped
import com.tangem.core.decompose.model.Model
import com.tangem.core.decompose.model.ParamsContainer
@ -134,17 +135,20 @@ internal class MultiWalletUpgradeWalletModel @Inject constructor(
val scanResponse = params.multiWalletState.value.currentScanResponse
val userWallet = createUserWallet(scanResponse)
saveWalletUseCase(userWallet, canOverride = true)
.onRight {
cardRepository.finishCardActivation(scanResponse.card.cardId)
saveWalletUseCase(
userWallet,
canOverride = true,
analyticsSource = AnalyticsParam.ScreensSources.Onboarding,
).onRight {
cardRepository.finishCardActivation(scanResponse.card.cardId)
// save user wallet for manage tokens screen
params.multiWalletState.update {
it.copy(resultUserWallet = userWallet)
}
onDone.emit(Step.Done)
// save user wallet for manage tokens screen
params.multiWalletState.update {
it.copy(resultUserWallet = userWallet)
}
onDone.emit(Step.Done)
}
}
}

View file

@ -82,7 +82,11 @@ internal class OnboardingNoteCreateWalletModel @Inject constructor(
private fun createWalletAndNavigateBackWithDone(scanResponse: ScanResponse) {
modelScope.launch {
val userWallet = createUserWallet(scanResponse)
saveWalletUseCase(userWallet, canOverride = true).onRight {
saveWalletUseCase(
userWallet,
canOverride = true,
analyticsSource = AnalyticsParam.ScreensSources.Onboarding,
).onRight {
params.onWalletCreated(userWallet)
}
_uiState.update {

View file

@ -300,6 +300,7 @@ internal class OnboardingTwinModel @Inject constructor(
saveWalletUseCase(
userWallet = userWallet,
canOverride = true,
analyticsSource = AnalyticsParam.ScreensSources.Onboarding,
).onLeft {
Timber.e("Unable to save user wallet: $it")
setLoading(false)
@ -329,6 +330,7 @@ internal class OnboardingTwinModel @Inject constructor(
saveWalletUseCase(
userWallet = userWallet,
canOverride = true,
analyticsSource = AnalyticsParam.ScreensSources.Onboarding,
).onLeft {
Timber.e("Unable to save user wallet: $it")
setLoading(false)