diff --git a/core/analytics/models/src/main/java/com/tangem/core/analytics/models/event/SwapAnalyticsEvent.kt b/core/analytics/models/src/main/java/com/tangem/core/analytics/models/event/SwapAnalyticsEvent.kt index e6e5864f91..74b68afc09 100644 --- a/core/analytics/models/src/main/java/com/tangem/core/analytics/models/event/SwapAnalyticsEvent.kt +++ b/core/analytics/models/src/main/java/com/tangem/core/analytics/models/event/SwapAnalyticsEvent.kt @@ -4,6 +4,7 @@ import com.tangem.core.analytics.models.AnalyticsEvent import com.tangem.core.analytics.models.AnalyticsParam.Key.SEARCHED import com.tangem.core.analytics.models.AnalyticsParam.Key.SOURCE import com.tangem.core.analytics.models.AnalyticsParam.Key.TOKEN_PARAM +import com.tangem.core.analytics.models.AnalyticsParam.Key.TYPE import com.tangem.core.analytics.models.AnalyticsParam.ScreensSources /** @@ -26,4 +27,9 @@ sealed class SwapAnalyticsEvent( SEARCHED to if (isSearched) "True" else "False", ), ) + + class FilterProvider(filterType: String) : SwapAnalyticsEvent( + event = "Filter Provider", + params = mapOf(TYPE to filterType), + ) } \ No newline at end of file diff --git a/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/chooseprovider/model/SwapChooseProviderModel.kt b/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/chooseprovider/model/SwapChooseProviderModel.kt index bc5c02da91..c0b3b40f29 100644 --- a/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/chooseprovider/model/SwapChooseProviderModel.kt +++ b/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/chooseprovider/model/SwapChooseProviderModel.kt @@ -1,10 +1,12 @@ package com.tangem.features.swap.v2.impl.chooseprovider.model +import com.tangem.core.analytics.api.AnalyticsEventHandler +import com.tangem.core.analytics.models.event.SwapAnalyticsEvent import com.tangem.core.decompose.di.ModelScoped import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.ParamsContainer -import com.tangem.domain.express.models.ProviderFilterType import com.tangem.domain.express.models.ExpressError +import com.tangem.domain.express.models.ProviderFilterType import com.tangem.domain.express.models.ExpressProviderType import com.tangem.domain.settings.usercountry.models.needApplyFCARestrictions import com.tangem.features.swap.v2.api.SwapFeatureToggles @@ -26,6 +28,7 @@ internal class SwapChooseProviderModel @Inject constructor( paramsContainer: ParamsContainer, override val dispatchers: CoroutineDispatcherProvider, private val swapFeatureToggles: SwapFeatureToggles, + private val analyticsEventHandler: AnalyticsEventHandler, ) : Model() { private val params: SwapChooseProviderComponent.Params = paramsContainer.require() @@ -52,6 +55,15 @@ internal class SwapChooseProviderModel @Inject constructor( } fun onFilterSelect(filterType: ProviderFilterType) { + analyticsEventHandler.send( + SwapAnalyticsEvent.FilterProvider( + filterType = when (filterType) { + ProviderFilterType.ALL -> "All" + ProviderFilterType.CEX -> "CEX" + ProviderFilterType.DEX -> "DEX" + }, + ), + ) val filteredProviders = getDisplayableProviders(params.providers) .filter { matchesTypeFilter(it, filterType) } uiState.value = uiState.value.copy( diff --git a/features/swap/impl/src/main/java/com/tangem/feature/swap/model/SwapModel.kt b/features/swap/impl/src/main/java/com/tangem/feature/swap/model/SwapModel.kt index 097d3839d2..47e0377fff 100644 --- a/features/swap/impl/src/main/java/com/tangem/feature/swap/model/SwapModel.kt +++ b/features/swap/impl/src/main/java/com/tangem/feature/swap/model/SwapModel.kt @@ -20,6 +20,7 @@ import com.tangem.core.analytics.api.AnalyticsEventHandler import com.tangem.core.analytics.models.AnalyticsParam import com.tangem.core.analytics.models.AnalyticsParam.ScreensSources import com.tangem.core.analytics.models.Basic +import com.tangem.core.analytics.models.event.SwapAnalyticsEvent import com.tangem.core.decompose.di.ModelScoped import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.ParamsContainer @@ -43,6 +44,7 @@ import com.tangem.domain.appcurrency.GetSelectedAppCurrencyUseCase import com.tangem.domain.appcurrency.model.AppCurrency import com.tangem.domain.balancehiding.GetBalanceHidingSettingsUseCase import com.tangem.domain.express.models.ExpressOperationType +import com.tangem.domain.express.models.ProviderFilterType import com.tangem.domain.feedback.GetWalletMetaInfoUseCase import com.tangem.domain.feedback.SaveBlockchainErrorUseCase import com.tangem.domain.feedback.SendFeedbackEmailUseCase @@ -1723,6 +1725,15 @@ internal class SwapModel @Inject constructor( } }, onProviderFilterSelect = { filterType -> + analyticsEventHandler.send( + SwapAnalyticsEvent.FilterProvider( + filterType = when (filterType) { + ProviderFilterType.ALL -> "All" + ProviderFilterType.CEX -> "CEX" + ProviderFilterType.DEX -> "DEX" + }, + ), + ) uiState = stateBuilder.updateProviderFilterType(uiState, filterType) }, openTokenDetailsScreen = { cryptoCurrency ->