From e7f607001b952e817d55f7ea9279d95f4585176c Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 30 Jan 2026 21:16:20 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../features/home/impl/model/HomeModel.kt | 5 ++++- .../model/Wallet1ChooseOptionModel.kt | 22 +++++++++++-------- .../model/MultiWalletCreateWalletModel.kt | 21 ++++++++++-------- .../model/MultiWalletUpgradeWalletModel.kt | 22 +++++++++++-------- .../model/OnboardingNoteCreateWalletModel.kt | 6 ++++- .../v2/twin/impl/model/OnboardingTwinModel.kt | 2 ++ 6 files changed, 49 insertions(+), 29 deletions(-) diff --git a/features/home/impl/src/main/kotlin/com/tangem/features/home/impl/model/HomeModel.kt b/features/home/impl/src/main/kotlin/com/tangem/features/home/impl/model/HomeModel.kt index e650912dc6..b261bf588d 100644 --- a/features/home/impl/src/main/kotlin/com/tangem/features/home/impl/model/HomeModel.kt +++ b/features/home/impl/src/main/kotlin/com/tangem/features/home/impl/model/HomeModel.kt @@ -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) diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/chooseoption/model/Wallet1ChooseOptionModel.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/chooseoption/model/Wallet1ChooseOptionModel.kt index 8d508c9a4b..32c406b3b1 100644 --- a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/chooseoption/model/Wallet1ChooseOptionModel.kt +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/chooseoption/model/Wallet1ChooseOptionModel.kt @@ -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) + } } } diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/createwallet/model/MultiWalletCreateWalletModel.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/createwallet/model/MultiWalletCreateWalletModel.kt index 1cb37f4eb6..42d2db0372 100644 --- a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/createwallet/model/MultiWalletCreateWalletModel.kt +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/createwallet/model/MultiWalletCreateWalletModel.kt @@ -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) + } } } diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/upgradewallet/model/MultiWalletUpgradeWalletModel.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/upgradewallet/model/MultiWalletUpgradeWalletModel.kt index f6b6306cd6..d7e2c6e3e9 100644 --- a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/upgradewallet/model/MultiWalletUpgradeWalletModel.kt +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/multiwallet/impl/child/upgradewallet/model/MultiWalletUpgradeWalletModel.kt @@ -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) + } } } diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/note/impl/child/create/model/OnboardingNoteCreateWalletModel.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/note/impl/child/create/model/OnboardingNoteCreateWalletModel.kt index 51db083121..b286fead4f 100644 --- a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/note/impl/child/create/model/OnboardingNoteCreateWalletModel.kt +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/note/impl/child/create/model/OnboardingNoteCreateWalletModel.kt @@ -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 { diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/twin/impl/model/OnboardingTwinModel.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/twin/impl/model/OnboardingTwinModel.kt index e70843bd7b..79c8741734 100644 --- a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/twin/impl/model/OnboardingTwinModel.kt +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/twin/impl/model/OnboardingTwinModel.kt @@ -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)