From c1a7434cbf7f05165621544fdff9b4bd11bdb72e Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 11 Nov 2025 23:15:40 +0200 Subject: [PATCH] Updated on 2026-08-14 --- .../staking/analytics/StakingAnalyticsEvent.kt | 12 +++++++++++- .../presentation/model/StakingClickIntents.kt | 3 +++ .../impl/presentation/model/StakingModel.kt | 18 ++++++++++++++++++ .../state/stub/StakingClickIntentsStub.kt | 2 ++ .../AddStakingNotificationsTransformer.kt | 1 + 5 files changed, 35 insertions(+), 1 deletion(-) diff --git a/domain/staking/src/main/java/com/tangem/domain/staking/analytics/StakingAnalyticsEvent.kt b/domain/staking/src/main/java/com/tangem/domain/staking/analytics/StakingAnalyticsEvent.kt index 8279bb4189..42da91d04f 100644 --- a/domain/staking/src/main/java/com/tangem/domain/staking/analytics/StakingAnalyticsEvent.kt +++ b/domain/staking/src/main/java/com/tangem/domain/staking/analytics/StakingAnalyticsEvent.kt @@ -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 { diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingClickIntents.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingClickIntents.kt index 97e447a0f5..7e79b03b94 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingClickIntents.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingClickIntents.kt @@ -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() } \ No newline at end of file diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingModel.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingModel.kt index 3ae4a70812..673c1398e0 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingModel.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/model/StakingModel.kt @@ -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( diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/stub/StakingClickIntentsStub.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/stub/StakingClickIntentsStub.kt index d7fac733a7..1b90c1dc49 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/stub/StakingClickIntentsStub.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/stub/StakingClickIntentsStub.kt @@ -81,5 +81,7 @@ internal object StakingClickIntentsStub : StakingClickIntents { override fun onActivateTonAccountNotificationClick() {} + override fun onActivateTonAccountNotificationShow() {} + override fun onActivateTonAccountClick() {} } \ No newline at end of file diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/notifications/AddStakingNotificationsTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/notifications/AddStakingNotificationsTransformer.kt index b4daf2050b..66d3c56eac 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/notifications/AddStakingNotificationsTransformer.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/notifications/AddStakingNotificationsTransformer.kt @@ -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,