Updated on 2026-08-14

This commit is contained in:
Tangem 2025-11-11 23:15:40 +02:00
parent f88abf06b5
commit c1a7434cbf
5 changed files with 35 additions and 1 deletions

View file

@ -160,10 +160,20 @@ sealed class StakingAnalyticsEvent(
),
)
data class UnitializedAddress(val token: String) : StakingAnalyticsEvent(
data class UninitializedAddress(val token: String) : StakingAnalyticsEvent(
event = "Notice - Uninitialized Address",
params = mapOf(AnalyticsParam.TOKEN_PARAM to token),
)
data class UninitializedAddressScreen(val token: String) : StakingAnalyticsEvent(
event = "Uninitialized Address Screen",
params = mapOf(AnalyticsParam.TOKEN_PARAM to token),
)
data class ButtonActivate(val token: String) : StakingAnalyticsEvent(
event = "Button - Activate",
params = mapOf(AnalyticsParam.TOKEN_PARAM to token),
)
}
enum class StakeScreenSource {

View file

@ -9,6 +9,7 @@ import com.tangem.features.staking.impl.presentation.state.BalanceState
import com.tangem.features.staking.impl.presentation.state.bottomsheet.InfoType
import java.math.BigDecimal
// TODO split this interface to click intents and other interaction events
@Suppress("TooManyFunctions")
internal interface StakingClickIntents : AmountScreenClickIntents {
@ -72,5 +73,7 @@ internal interface StakingClickIntents : AmountScreenClickIntents {
fun onActivateTonAccountNotificationClick()
fun onActivateTonAccountNotificationShow()
fun onActivateTonAccountClick()
}

View file

@ -943,6 +943,11 @@ internal class StakingModel @Inject constructor(
}
override fun onActivateTonAccountNotificationClick() {
analyticsEventHandler.send(
StakingAnalyticsEvent.UninitializedAddressScreen(
token = cryptoCurrencyStatus.currency.symbol,
),
)
modelScope.launch {
stateController.update(
ShowTonInitializeBottomSheetTransformer(
@ -996,7 +1001,20 @@ internal class StakingModel @Inject constructor(
}
}
override fun onActivateTonAccountNotificationShow() {
analyticsEventHandler.send(
StakingAnalyticsEvent.UninitializedAddress(
token = cryptoCurrencyStatus.currency.symbol,
),
)
}
override fun onActivateTonAccountClick() {
analyticsEventHandler.send(
StakingAnalyticsEvent.ButtonActivate(
token = cryptoCurrencyStatus.currency.symbol,
),
)
modelScope.launch {
tonAccountInitializeTransaction?.let { transaction ->
sendTransactionUseCase.invoke(

View file

@ -81,5 +81,7 @@ internal object StakingClickIntentsStub : StakingClickIntents {
override fun onActivateTonAccountNotificationClick() {}
override fun onActivateTonAccountNotificationShow() {}
override fun onActivateTonAccountClick() {}
}

View file

@ -295,6 +295,7 @@ internal class AddStakingNotificationsTransformer(
val cryptoCurrencyNetworkIdValue = cryptoCurrencyStatusProvider().currency.network.rawId
if (isTon(cryptoCurrencyNetworkIdValue) && !isAccountInitialized) {
prevState.clickIntents.onActivateTonAccountNotificationShow()
add(
StakingNotification.Warning.InitializeTonAccount(
onInitializeClick = prevState.clickIntents::onActivateTonAccountNotificationClick,