From eb73a64054785999be9a16dbf84bc0bce3dd95f7 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 12 Dec 2025 15:11:21 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../feature/wallet/child/wallet/model/WalletModel.kt | 6 +----- .../wallet/analytics/WalletScreenAnalyticsEvent.kt | 10 ++++++++-- .../analytics/utils/WalletWarningsAnalyticsSender.kt | 10 +++++++++- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/WalletModel.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/WalletModel.kt index 960d3c37f8..38cf4e0ca2 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/WalletModel.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/WalletModel.kt @@ -4,7 +4,6 @@ import androidx.compose.runtime.Stable import arrow.core.getOrElse import com.arkivanov.decompose.router.slot.activate import com.arkivanov.decompose.router.slot.dismiss -import com.squareup.sqldelight.internal.AtomicBoolean import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.models.AnalyticsParam import com.tangem.core.analytics.models.event.MainScreenAnalyticsEvent @@ -116,7 +115,6 @@ internal class WalletModel @Inject constructor( private val updateTangemPayJobHolder = JobHolder() private var expressTxStatusTaskScheduler = SingleTaskScheduler() - private val hasMainScreenOpenedEventSent = AtomicBoolean(false) init { if (!hotWalletFeatureToggles.isHotWalletEnabled) { @@ -291,15 +289,13 @@ internal class WalletModel @Inject constructor( .onEach { selectedWallet -> trackingContextProxy.setContext(selectedWallet) - if (hotWalletFeatureToggles.isHotWalletEnabled && !hasMainScreenOpenedEventSent.get()) { - // send it here because we need context to be set + if (hotWalletFeatureToggles.isHotWalletEnabled) { modelScope.launch { val hasMobileWallet = userWalletsListRepository.userWalletsSync() .any { it is UserWallet.Hot } analyticsEventsHandler.send( WalletScreenAnalyticsEvent.MainScreen.ScreenOpened(hasMobileWallet), ) - hasMainScreenOpenedEventSent.set(true) } } diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/WalletScreenAnalyticsEvent.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/WalletScreenAnalyticsEvent.kt index bdd61799ba..5d679b0b59 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/WalletScreenAnalyticsEvent.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/WalletScreenAnalyticsEvent.kt @@ -62,9 +62,15 @@ sealed class WalletScreenAnalyticsEvent { params = mapOf("Mobile Wallet" to if (hasMobileWallet) "Yes" else "No"), ) - data class NoticeFinishActivation(private val activationState: ActivationState) : MainScreen( + data class NoticeFinishActivation( + private val activationState: ActivationState, + private val balanceState: AnalyticsParam.EmptyFull, + ) : MainScreen( event = "Notice - Finish Activation", - params = mapOf("Activation State" to activationState.value), + params = mapOf( + "Activation State" to activationState.value, + "Balance State" to balanceState.value, + ), ) { enum class ActivationState(val value: String) { NotStarted("Not Started"), diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/WalletWarningsAnalyticsSender.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/WalletWarningsAnalyticsSender.kt index 66ad6e1bd0..8cfc8b2ea0 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/WalletWarningsAnalyticsSender.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/WalletWarningsAnalyticsSender.kt @@ -5,6 +5,7 @@ import com.tangem.core.analytics.models.AnalyticsEvent import com.tangem.core.analytics.models.AnalyticsParam import com.tangem.core.decompose.di.ModelScoped import com.tangem.domain.tokens.model.analytics.PromoAnalyticsEvent.* +import com.tangem.feature.wallet.child.wallet.model.WalletActivationBannerType import com.tangem.feature.wallet.presentation.wallet.analytics.WalletScreenAnalyticsEvent import com.tangem.feature.wallet.presentation.wallet.analytics.WalletScreenAnalyticsEvent.MainScreen import com.tangem.feature.wallet.presentation.wallet.state.model.WalletNotification @@ -78,7 +79,14 @@ internal class WalletWarningsAnalyticsSender @Inject constructor( } else { MainScreen.NoticeFinishActivation.ActivationState.NotStarted } - MainScreen.NoticeFinishActivation(activationState) + val balanceState = when (warning.type) { + WalletActivationBannerType.Attention -> AnalyticsParam.EmptyFull.Empty + WalletActivationBannerType.Warning -> AnalyticsParam.EmptyFull.Full + } + MainScreen.NoticeFinishActivation( + activationState = activationState, + balanceState = balanceState, + ) } is WalletNotification.Critical.SeedPhraseNotification -> MainScreen.NoticeSeedPhraseSupport() is WalletNotification.Critical.SeedPhraseSecondNotification -> MainScreen.NoticeSeedPhraseSupportSecond()