Updated on 2026-08-14
This commit is contained in:
parent
4a59f88990
commit
a22f5b7ef8
10 changed files with 37 additions and 12 deletions
|
|
@ -1,6 +1,7 @@
|
|||
package com.tangem.tap.common.analytics.events
|
||||
|
||||
import com.tangem.core.analytics.models.AnalyticsEvent
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.TOKEN_PARAM
|
||||
|
||||
/**
|
||||
[REDACTED_AUTHOR]
|
||||
|
|
@ -17,7 +18,12 @@ sealed class Token(
|
|||
params: Map<String, String> = mapOf(),
|
||||
) : Token("Token / Receive", event, params) {
|
||||
|
||||
class ScreenOpened : Receive("Receive Screen Opened")
|
||||
class ScreenOpened(
|
||||
val token: String,
|
||||
) : Receive(
|
||||
event = "Receive Screen Opened",
|
||||
params = mapOf(TOKEN_PARAM to token),
|
||||
)
|
||||
class ButtonCopyAddress : Receive("Button - Copy Address")
|
||||
class ButtonShareAddress : Receive("Button - Share Address")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ internal class AddressInfoBottomSheetDialog(
|
|||
|
||||
override fun show() {
|
||||
super.show()
|
||||
Analytics.send(Token.Receive.ScreenOpened())
|
||||
Analytics.send(Token.Receive.ScreenOpened(stateDialog.currency.currencySymbol))
|
||||
showData(data = stateDialog.addressData)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1,17 @@
|
|||
package com.tangem.domain.tokens.model.analytics
|
||||
|
||||
import com.tangem.core.analytics.models.AnalyticsEvent
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.TOKEN_PARAM
|
||||
|
||||
sealed class TokenReceiveAnalyticsEvent(
|
||||
event: String,
|
||||
params: Map<String, String> = mapOf(),
|
||||
) : AnalyticsEvent("Token / Receive", event, params, null) {
|
||||
|
||||
object ReceiveScreenOpened : TokenReceiveAnalyticsEvent(event = "Receive Screen Opened")
|
||||
class ReceiveScreenOpened(token: String) : TokenReceiveAnalyticsEvent(
|
||||
event = "Receive Screen Opened",
|
||||
params = mapOf(TOKEN_PARAM to token),
|
||||
)
|
||||
|
||||
class ButtonCopyAddress(token: String) : TokenReceiveAnalyticsEvent(
|
||||
event = "Button - Copy Address",
|
||||
|
|
|
|||
|
|
@ -44,6 +44,13 @@ internal class MarketDetailsAnalyticsEvent(
|
|||
"Link" to linkTitle,
|
||||
),
|
||||
)
|
||||
|
||||
fun exchangesScreenOpened() = MarketDetailsAnalyticsEvent(
|
||||
event = "Exchanges Screen Opened",
|
||||
params = mapOf(
|
||||
"Token" to token.symbol,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
enum class IntervalType(val source: String) {
|
||||
|
|
|
|||
|
|
@ -527,6 +527,8 @@ internal class MarketsTokenDetailsModel @Inject constructor(
|
|||
|
||||
private fun onListedOnClick(exchangesCount: Int) {
|
||||
modelScope.launch {
|
||||
analyticsEventHandler.send(analyticsEventBuilder.exchangesScreenOpened())
|
||||
|
||||
showBottomSheet(content = ExchangesBottomSheetContent.Loading(exchangesCount))
|
||||
|
||||
// Delay to show the bottom sheet
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ import com.tangem.domain.managetokens.CheckCurrencyUnsupportedUseCase
|
|||
import com.tangem.domain.managetokens.model.CurrencyUnsupportedState
|
||||
import com.tangem.domain.markets.SaveMarketTokensUseCase
|
||||
import com.tangem.domain.markets.TokenMarketInfo
|
||||
import com.tangem.domain.tokens.model.Network
|
||||
import com.tangem.domain.wallets.models.UserWalletId
|
||||
import com.tangem.domain.wallets.usecase.GetSelectedWalletUseCase
|
||||
import com.tangem.features.markets.impl.R
|
||||
|
|
|
|||
|
|
@ -559,7 +559,7 @@ internal class TokenDetailsViewModel @Inject constructor(
|
|||
|
||||
viewModelScope.launch(dispatchers.main) {
|
||||
analyticsEventsHandler.send(TokenScreenAnalyticsEvent.ButtonReceive(cryptoCurrency.symbol))
|
||||
analyticsEventsHandler.send(TokenReceiveAnalyticsEvent.ReceiveScreenOpened)
|
||||
analyticsEventsHandler.send(TokenReceiveAnalyticsEvent.ReceiveScreenOpened(cryptoCurrency.symbol))
|
||||
|
||||
internalUiState.value = stateFactory.getStateWithReceiveBottomSheet(
|
||||
currency = cryptoCurrency,
|
||||
|
|
|
|||
|
|
@ -87,7 +87,12 @@ sealed class WalletScreenAnalyticsEvent {
|
|||
data object NoticeScanYourCardTapped : MainScreen(event = "Notice - Scan Your Card Tapped")
|
||||
data object WalletUnlockTapped : MainScreen(event = "Notice - Wallet Unlock Tapped")
|
||||
|
||||
data object NetworksUnreachable : MainScreen(event = "Notice - Networks Unreachable")
|
||||
class NetworksUnreachable(
|
||||
tokens: List<String>,
|
||||
) : MainScreen(
|
||||
event = "Notice - Networks Unreachable",
|
||||
params = mapOf("Tokens" to tokens.joinToString()),
|
||||
)
|
||||
|
||||
data object MissingAddresses : MainScreen(event = "Notice - Missing Addresses")
|
||||
|
||||
|
|
|
|||
|
|
@ -166,12 +166,12 @@ internal class TokenListAnalyticsSender @Inject constructor(
|
|||
}
|
||||
|
||||
private fun sendUnreachableNetworksEventIfNeeded(currenciesStatuses: List<CryptoCurrencyStatus>) {
|
||||
val hasUnreachableCurrencies = currenciesStatuses.any {
|
||||
it.value is CryptoCurrencyStatus.Unreachable
|
||||
}
|
||||
val unreachableCurrencies = currenciesStatuses
|
||||
.filter { it.value is CryptoCurrencyStatus.Unreachable }
|
||||
.map { it.currency.symbol }
|
||||
|
||||
if (hasUnreachableCurrencies) {
|
||||
analyticsEventHandler.send(MainScreen.NetworksUnreachable)
|
||||
if (unreachableCurrencies.isNotEmpty()) {
|
||||
analyticsEventHandler.send(MainScreen.NetworksUnreachable(unreachableCurrencies))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -185,7 +185,9 @@ internal class WalletCurrencyActionsClickIntentsImplementor @Inject constructor(
|
|||
event = TokenScreenAnalyticsEvent.ButtonReceive(cryptoCurrencyStatus.currency.symbol),
|
||||
)
|
||||
|
||||
analyticsEventHandler.send(event = TokenReceiveAnalyticsEvent.ReceiveScreenOpened)
|
||||
analyticsEventHandler.send(
|
||||
event = TokenReceiveAnalyticsEvent.ReceiveScreenOpened(cryptoCurrencyStatus.currency.symbol),
|
||||
)
|
||||
|
||||
stateHolder.showBottomSheet(
|
||||
createReceiveBottomSheetContent(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue