Updated on 2026-08-14

This commit is contained in:
Tangem 2025-12-12 15:11:21 +05:00
parent 5f938d6139
commit eb73a64054
3 changed files with 18 additions and 8 deletions

View file

@ -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<Unit>()
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)
}
}

View file

@ -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"),

View file

@ -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()