diff --git a/domain/visa/src/main/kotlin/com/tangem/domain/tangempay/TangemPayAnalyticsEvents.kt b/domain/visa/src/main/kotlin/com/tangem/domain/tangempay/TangemPayAnalyticsEvents.kt index af92401e5b..82b9328d08 100644 --- a/domain/visa/src/main/kotlin/com/tangem/domain/tangempay/TangemPayAnalyticsEvents.kt +++ b/domain/visa/src/main/kotlin/com/tangem/domain/tangempay/TangemPayAnalyticsEvents.kt @@ -8,42 +8,47 @@ sealed class TangemPayAnalyticsEvents( params: Map = emptyMap(), ) : AnalyticsEvent(category = categoryName, event = event, params = params) { - data object ActivationScreenOpened : TangemPayAnalyticsEvents( + class ActivationScreenOpened : TangemPayAnalyticsEvents( categoryName = "Visa Onboarding", - event = "Activation Screen Opened", + event = "Visa Activation Screen Opened", ) - data object ViewTermsClicked : TangemPayAnalyticsEvents( + class ViewTermsClicked : TangemPayAnalyticsEvents( categoryName = "Visa Onboarding", event = "Button - Visa View Terms", ) - data object GetCardClicked : TangemPayAnalyticsEvents( + class GetCardClicked : TangemPayAnalyticsEvents( categoryName = "Visa Onboarding", event = "Button - Visa Get Card", ) - data object KycFlowOpened : TangemPayAnalyticsEvents( + class KycFlowOpened : TangemPayAnalyticsEvents( categoryName = "Visa Onboarding", event = "Visa KYC Flow Opened", ) - data object IssuingBannerDisplayed : TangemPayAnalyticsEvents( + class IssuingBannerDisplayed : TangemPayAnalyticsEvents( categoryName = "Visa Onboarding", event = "Visa Issuing Banner Displayed", ) - data object MainScreenOpened : TangemPayAnalyticsEvents( + class MainScreenOpened : TangemPayAnalyticsEvents( categoryName = "Visa Screen", event = "Visa Main Screen Opened", ) - data object ReceiveFundsClicked : TangemPayAnalyticsEvents( + class AddFundsClicked : TangemPayAnalyticsEvents( + categoryName = "Visa Screen", + event = "Button - Visa Add Funds", + ) + + class ReceiveFundsClicked : TangemPayAnalyticsEvents( categoryName = "Visa Screen", event = "Button - Visa Receive", ) - data object SwapClicked : TangemPayAnalyticsEvents( + class SwapClicked : TangemPayAnalyticsEvents( categoryName = "Visa Screen", event = "Button - Visa Swap", ) diff --git a/features/kyc/impl/src/main/kotlin/com/tangem/features/kyc/DefaultKycModel.kt b/features/kyc/impl/src/main/kotlin/com/tangem/features/kyc/DefaultKycModel.kt index 2d7b7e1558..ba0446ea8a 100644 --- a/features/kyc/impl/src/main/kotlin/com/tangem/features/kyc/DefaultKycModel.kt +++ b/features/kyc/impl/src/main/kotlin/com/tangem/features/kyc/DefaultKycModel.kt @@ -30,7 +30,7 @@ class DefaultKycModel @Inject constructor( val uiState = _uiState.asStateFlow() init { - analytics.send(TangemPayAnalyticsEvents.KycFlowOpened) + analytics.send(TangemPayAnalyticsEvents.KycFlowOpened()) modelScope.launch { try { kycRepository.getKycStartInfo(params.userWalletId).getOrNull()?.let { _uiState.emit(it) } diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayDetailsModel.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayDetailsModel.kt index 78c4c843c6..df186cb3f8 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayDetailsModel.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayDetailsModel.kt @@ -101,6 +101,7 @@ internal class TangemPayDetailsModel @Inject constructor( val bottomSheetNavigation: SlotNavigation = SlotNavigation() init { + analytics.send(TangemPayAnalyticsEvents.MainScreenOpened()) handleBalanceHiding() fetchAddToWalletBanner() fetchBalance() @@ -212,6 +213,7 @@ internal class TangemPayDetailsModel @Inject constructor( } override fun onClickAddFunds() { + analytics.send(TangemPayAnalyticsEvents.AddFundsClicked()) val currentBalance = balance val depositAddress = currentBalance?.depositAddress if (currentBalance == null || depositAddress == null) { @@ -352,7 +354,7 @@ internal class TangemPayDetailsModel @Inject constructor( } override fun onClickSwap(data: TangemPayTopUpData) { - analytics.send(TangemPayAnalyticsEvents.SwapClicked) + analytics.send(TangemPayAnalyticsEvents.SwapClicked()) bottomSheetNavigation.dismiss() router.push( AppRoute.Swap( @@ -371,7 +373,7 @@ internal class TangemPayDetailsModel @Inject constructor( } override fun onClickReceive(data: TangemPayTopUpData) { - analytics.send(TangemPayAnalyticsEvents.ReceiveFundsClicked) + analytics.send(TangemPayAnalyticsEvents.ReceiveFundsClicked()) bottomSheetNavigation.dismiss() val config = TokenReceiveConfig( shouldShowWarning = false, diff --git a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/transformers/TangemPayTxHistoryDetailsConverter.kt b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/transformers/TangemPayTxHistoryDetailsConverter.kt index 9bfd3722fc..28706d2143 100644 --- a/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/transformers/TangemPayTxHistoryDetailsConverter.kt +++ b/features/tangempay/details/impl/src/main/kotlin/com/tangem/features/tangempay/model/transformers/TangemPayTxHistoryDetailsConverter.kt @@ -234,7 +234,7 @@ internal object TangemPayTxHistoryDetailsConverter : ) is TangemPayTxHistoryItem.Spend -> persistentListOf( ButtonState( - text = resourceReference(R.string.tangem_pay_dispute), + text = resourceReference(R.string.tangem_pay_get_help), onClick = this.onDisputeClick, ), ) diff --git a/features/tangempay/onboarding/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayOnboardingModel.kt b/features/tangempay/onboarding/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayOnboardingModel.kt index 2479a42d03..dc16c58424 100644 --- a/features/tangempay/onboarding/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayOnboardingModel.kt +++ b/features/tangempay/onboarding/impl/src/main/kotlin/com/tangem/features/tangempay/model/TangemPayOnboardingModel.kt @@ -50,7 +50,6 @@ internal class TangemPayOnboardingModel @Inject constructor( field = MutableStateFlow(getInitialState()) init { - analytics.send(TangemPayAnalyticsEvents.ActivationScreenOpened) modelScope.launch { when (params) { is TangemPayOnboardingComponent.Params.ContinueOnboarding -> { @@ -66,6 +65,8 @@ internal class TangemPayOnboardingModel @Inject constructor( } private fun showOnboarding() { + // TODO: move analytics to init block [REDACTED_JIRA] + analytics.send(TangemPayAnalyticsEvents.ActivationScreenOpened()) uiState.update { TangemPayOnboardingScreenState.Content( onBack = it.onBack, @@ -118,12 +119,12 @@ internal class TangemPayOnboardingModel @Inject constructor( } private fun onTermsClick() { - analytics.send(TangemPayAnalyticsEvents.ViewTermsClicked) + analytics.send(TangemPayAnalyticsEvents.ViewTermsClicked()) urlOpener.openUrl(TangemPayConstants.TERMS_AND_LIMITS_LINK) } private fun onGetCardClick() { - analytics.send(TangemPayAnalyticsEvents.GetCardClicked) + analytics.send(TangemPayAnalyticsEvents.GetCardClicked()) uiState.transformerUpdate(TangemPayOnboardingButtonLoadingTransformer(isLoading = true)) modelScope.launch { // TODO implement selector diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/WalletTangemPayAnalyticsEventSender.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/WalletTangemPayAnalyticsEventSender.kt index ff945a2974..e2df7c8cca 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/WalletTangemPayAnalyticsEventSender.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/WalletTangemPayAnalyticsEventSender.kt @@ -27,8 +27,8 @@ internal class WalletTangemPayAnalyticsEventSender @Inject constructor( val event = when { customerInfo.orderStatus == OrderStatus.CANCELED -> return // ignore cancelled state on analytics !customerInfo.info.isKycApproved -> return // ignore kyc not approved state on analytics - cardInfo != null && productInstance != null -> TangemPayAnalyticsEvents.MainScreenOpened - else -> TangemPayAnalyticsEvents.IssuingBannerDisplayed + cardInfo != null && productInstance != null -> return + else -> TangemPayAnalyticsEvents.IssuingBannerDisplayed() } if (sentEvents.add(event)) {