Updated on 2026-08-14

This commit is contained in:
Tangem 2025-06-03 18:17:54 +05:00
parent 8f0bf631f2
commit 4d0a8c6ab0
4 changed files with 15 additions and 5 deletions

View file

@ -217,5 +217,7 @@ sealed class AnalyticsParam {
const val PAYMENT_METHOD = "Payment Method"
const val WATCHED = "Watched"
const val ACTION = "Action"
const val COLLECTIONS = "Collections"
const val NFT = "Nft"
}
}

View file

@ -2,7 +2,8 @@ package com.tangem.domain.nft.analytics
import com.tangem.core.analytics.models.AnalyticsEvent
import com.tangem.core.analytics.models.AnalyticsParam.Key.BLOCKCHAIN
import com.tangem.core.analytics.models.AnalyticsParam.Key.COUNT
import com.tangem.core.analytics.models.AnalyticsParam.Key.COLLECTIONS
import com.tangem.core.analytics.models.AnalyticsParam.Key.NFT
import com.tangem.core.analytics.models.AnalyticsParam.Key.STATE
sealed class NFTAnalyticsEvent(
@ -21,13 +22,14 @@ sealed class NFTAnalyticsEvent(
params = buildMap {
put(STATE, state.value)
if (state is State.Full) {
put(COUNT, state.count.toString())
put(COLLECTIONS, state.collectionsCount.toString())
put(NFT, state.assetsCount.toString())
}
},
) {
sealed class State(val value: String) {
data object Empty : State("Empty")
data class Full(val count: Int) : State("Full")
data class Full(val assetsCount: Int, val collectionsCount: Int) : State("Full")
}
}

View file

@ -62,7 +62,10 @@ internal class NFTDetailsModel @Inject constructor(
appCurrency = appCurrency,
onBackClick = { params.onBackClick() },
onReadMoreClick = ::onReadMoreClick,
onSeeAllTraitsClick = { params.onAllTraitsClick() },
onSeeAllTraitsClick = {
analyticsEventHandler.send(NFTAnalyticsEvent.Details.ButtonSeeAll)
params.onAllTraitsClick()
},
onExploreClick = ::onExploreClick,
onSendClick = ::onSendClick,
onInfoBlockClick = ::onInfoBlockClick,

View file

@ -239,7 +239,10 @@ internal class WalletContentClickIntentsImplementor @Inject constructor(
override fun onNFTClick(userWallet: UserWallet) {
val selectedWallet = stateHolder.getSelectedWallet() as? WalletState.MultiCurrency.Content ?: return
val analyticsState = when (val nftState = selectedWallet.nftState) {
is WalletNFTItemUM.Content -> NFTAnalyticsEvent.NFTListScreenOpened.State.Full(nftState.assetsCount)
is WalletNFTItemUM.Content -> NFTAnalyticsEvent.NFTListScreenOpened.State.Full(
assetsCount = nftState.assetsCount,
collectionsCount = nftState.collectionsCount,
)
is WalletNFTItemUM.Empty -> NFTAnalyticsEvent.NFTListScreenOpened.State.Empty
is WalletNFTItemUM.Failed,
is WalletNFTItemUM.Hidden,