From a34cb0687c90badd6cde57f26609e48bbcbd2765 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 13 Dec 2023 13:46:29 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../analytics/TokenSwapPromoAnalyticsEvent.kt | 18 ++++++++++++++++++ .../TokenDetailsNotificationConverter.kt | 2 +- .../viewmodels/TokenDetailsClickIntents.kt | 2 ++ .../viewmodels/TokenDetailsViewModel.kt | 7 +++++++ .../analytics/WalletScreenAnalyticsEvent.kt | 2 ++ .../wallet/viewmodels/WalletViewModel.kt | 1 + 6 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 domain/tokens/models/src/main/java/com/tangem/domain/tokens/models/analytics/TokenSwapPromoAnalyticsEvent.kt diff --git a/domain/tokens/models/src/main/java/com/tangem/domain/tokens/models/analytics/TokenSwapPromoAnalyticsEvent.kt b/domain/tokens/models/src/main/java/com/tangem/domain/tokens/models/analytics/TokenSwapPromoAnalyticsEvent.kt new file mode 100644 index 0000000000..cc39985633 --- /dev/null +++ b/domain/tokens/models/src/main/java/com/tangem/domain/tokens/models/analytics/TokenSwapPromoAnalyticsEvent.kt @@ -0,0 +1,18 @@ +package com.tangem.domain.tokens.models.analytics + +import com.tangem.core.analytics.models.AnalyticsEvent + +sealed class TokenSwapPromoAnalyticsEvent( + event: String, + params: Map = mapOf(), +) : AnalyticsEvent("Swap Promo", event, params, null) { + + object Close : TokenSwapPromoAnalyticsEvent(event = "Button - Close") + + class Exchange( + token: String, + ) : TokenSwapPromoAnalyticsEvent( + event = "Button - Exchange Now", + params = mapOf("Token" to token), + ) +} \ No newline at end of file diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsNotificationConverter.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsNotificationConverter.kt index 0f4a2d7876..de2e921017 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsNotificationConverter.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/state/factory/TokenDetailsNotificationConverter.kt @@ -46,7 +46,7 @@ internal class TokenDetailsNotificationConverter( coinSymbol = warning.blockchainSymbol, ) is CryptoCurrencyWarning.SwapPromo -> TokenDetailsNotification.SwapPromo( - onSwapClick = clickIntents::onSwapClick, + onSwapClick = clickIntents::onSwapPromoClick, onCloseClick = clickIntents::onSwapPromoDismiss, ) } diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/viewmodels/TokenDetailsClickIntents.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/viewmodels/TokenDetailsClickIntents.kt index 05c6e64828..d049e3bf31 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/viewmodels/TokenDetailsClickIntents.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/viewmodels/TokenDetailsClickIntents.kt @@ -45,4 +45,6 @@ interface TokenDetailsClickIntents { fun onGoToProviderClick(url: String) fun onSwapPromoDismiss() + + fun onSwapPromoClick() } \ No newline at end of file diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/viewmodels/TokenDetailsViewModel.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/viewmodels/TokenDetailsViewModel.kt index 1fd2811a87..ffda8ffed0 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/viewmodels/TokenDetailsViewModel.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/viewmodels/TokenDetailsViewModel.kt @@ -29,6 +29,7 @@ import com.tangem.domain.tokens.model.NetworkAddress import com.tangem.domain.tokens.models.analytics.TokenExchangeAnalyticsEvent import com.tangem.domain.tokens.models.analytics.TokenReceiveAnalyticsEvent import com.tangem.domain.tokens.models.analytics.TokenScreenAnalyticsEvent +import com.tangem.domain.tokens.models.analytics.TokenSwapPromoAnalyticsEvent import com.tangem.domain.txhistory.usecase.GetExplorerTransactionUrlUseCase import com.tangem.domain.txhistory.usecase.GetTxHistoryItemsCountUseCase import com.tangem.domain.txhistory.usecase.GetTxHistoryItemsUseCase @@ -552,9 +553,15 @@ internal class TokenDetailsViewModel @Inject constructor( override fun onSwapPromoDismiss() { viewModelScope.launch(dispatchers.main) { shouldShowSwapPromoTokenUseCase.neverToShow() + analyticsEventsHandler.send(TokenSwapPromoAnalyticsEvent.Close) } } + override fun onSwapPromoClick() { + onSwapClick() + analyticsEventsHandler.send(TokenSwapPromoAnalyticsEvent.Exchange(cryptoCurrency.symbol)) + } + private companion object { const val EXCHANGE_STATUS_UPDATE_DELAY = 10_000L } 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 f244b3ffca..0d4dcc4a3f 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 @@ -63,4 +63,6 @@ sealed class WalletScreenAnalyticsEvent { object NoticeWalletLocked : MainScreen(event = "Notice - Wallet Locked") object WalletUnlockTapped : MainScreen(event = "Button - Wallet Unlock Tapped") } + + object SwapPromo : AnalyticsEvent(category = "Swap Promo", event = "Button - Close") } \ No newline at end of file diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/viewmodels/WalletViewModel.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/viewmodels/WalletViewModel.kt index 7d3c8f1dab..a410bff92e 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/viewmodels/WalletViewModel.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/viewmodels/WalletViewModel.kt @@ -779,6 +779,7 @@ internal class WalletViewModel @Inject constructor( override fun onCloseSwapPromoNotificationClick() { viewModelScope.launch(dispatchers.main) { shouldShowSwapPromoWalletUseCase.neverToShow() + analyticsEventsHandler.send(WalletScreenAnalyticsEvent.SwapPromo) } }