Updated on 2026-08-14
This commit is contained in:
parent
5f938d6139
commit
eb73a64054
3 changed files with 18 additions and 8 deletions
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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"),
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue