From 1b2583886d83b863b951b7704885f3a9ca53edb2 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 8 May 2024 12:11:09 +0200 Subject: [PATCH] Updated on 2026-08-14 --- .../common/analytics/events/AnalyticsParam.kt | 43 ++++++------- .../CardContextInterceptor.kt | 6 ++ .../core/analytics/models/AnalyticsParam.kt | 62 +++++++++---------- 3 files changed, 59 insertions(+), 52 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsParam.kt b/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsParam.kt index 489effa20d..8cfba8dd64 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsParam.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/events/AnalyticsParam.kt @@ -13,20 +13,20 @@ sealed class AnalyticsParam { } sealed class CardBalanceState(val value: String) { - object Empty : CardBalanceState("Empty") - object Full : CardBalanceState("Full") + data object Empty : CardBalanceState("Empty") + data object Full : CardBalanceState("Full") companion object } sealed class RateApp(val value: String) { - object Liked : RateApp("Liked") - object Closed : RateApp("Close") + data object Liked : RateApp("Liked") + data object Closed : RateApp("Close") } sealed class OnOffState(val value: String) { - object On : OnOffState("On") - object Off : OnOffState("Off") + data object On : OnOffState("On") + data object Off : OnOffState("Off") companion object { @@ -35,13 +35,13 @@ sealed class AnalyticsParam { } sealed class UserCode(val value: String) { - object AccessCode : UserCode("Access Code") + data object AccessCode : UserCode("Access Code") } sealed class SecurityMode(val value: String) { - object AccessCode : SecurityMode("Access Code") - object Passcode : SecurityMode("Passcode") - object LongTap : SecurityMode("Long Tap") + data object AccessCode : SecurityMode("Access Code") + data object Passcode : SecurityMode("Passcode") + data object LongTap : SecurityMode("Long Tap") companion object { fun from(option: SecurityOption): SecurityMode = when (option) { @@ -56,8 +56,8 @@ sealed class AnalyticsParam { val key: String = "Status" - object Enabled : AccessCodeRecoveryStatus("Enabled") - object Disabled : AccessCodeRecoveryStatus("Disabled") + data object Enabled : AccessCodeRecoveryStatus("Enabled") + data object Disabled : AccessCodeRecoveryStatus("Disabled") companion object { fun from(enabled: Boolean): AccessCodeRecoveryStatus { @@ -67,21 +67,21 @@ sealed class AnalyticsParam { } sealed class Error(val value: String) { - object App : Error("App Error") - object CardSdk : Error("Card Sdk Error") - object BlockchainSdk : Error("Blockchain Sdk Error") + data object App : Error("App Error") + data object CardSdk : Error("Card Sdk Error") + data object BlockchainSdk : Error("Blockchain Sdk Error") } sealed class WalletCreationType(val value: String) { - object PrivateKey : WalletCreationType(value = "Private Key") - object NewSeed : WalletCreationType(value = "New Seed") - object SeedImport : WalletCreationType(value = "Seed Import") + data object PrivateKey : WalletCreationType(value = "Private Key") + data object NewSeed : WalletCreationType(value = "New Seed") + data object SeedImport : WalletCreationType(value = "Seed Import") } sealed class AppTheme(val value: String) { - object System : AppTheme("System") - object Dark : AppTheme("Dark") - object Light : AppTheme("Light") + data object System : AppTheme("System") + data object Dark : AppTheme("Dark") + data object Light : AppTheme("Light") companion object { fun fromAppThemeMode(mode: AppThemeMode): AppTheme { @@ -104,6 +104,7 @@ sealed class AnalyticsParam { const val PERMISSION_TYPE = "Permission Type" const val PRODUCT_TYPE = "Product Type" const val FIRMWARE = "Firmware" + const val USER_WALLET_ID = "User Wallet ID" const val CURRENCY = "Currency" const val ERROR_DESCRIPTION = "Error Description" const val ERROR_CODE = "Error Code" diff --git a/app/src/main/java/com/tangem/tap/common/analytics/paramsInterceptor/CardContextInterceptor.kt b/app/src/main/java/com/tangem/tap/common/analytics/paramsInterceptor/CardContextInterceptor.kt index c881cd0127..9ba9bbbf87 100644 --- a/app/src/main/java/com/tangem/tap/common/analytics/paramsInterceptor/CardContextInterceptor.kt +++ b/app/src/main/java/com/tangem/tap/common/analytics/paramsInterceptor/CardContextInterceptor.kt @@ -5,6 +5,7 @@ import com.tangem.core.analytics.models.AnalyticsEvent import com.tangem.domain.common.util.cardTypesResolver import com.tangem.domain.models.scan.ProductType import com.tangem.domain.models.scan.ScanResponse +import com.tangem.domain.userwallets.UserWalletIdBuilder import com.tangem.tap.common.analytics.converters.ParamCardCurrencyConverter import com.tangem.tap.common.analytics.events.AnalyticsParam import com.tangem.tap.common.analytics.events.IntroductionProcess @@ -18,6 +19,8 @@ class CardContextInterceptor( private val scanResponse: ScanResponse, ) : ParamsInterceptor { + private val userWalletId = UserWalletIdBuilder.scanResponse(scanResponse).build() + override fun id(): String = CardContextInterceptor.id() override fun canBeAppliedTo(event: AnalyticsEvent): Boolean { @@ -32,6 +35,9 @@ class CardContextInterceptor( params[AnalyticsParam.BATCH] = card.batchId params[AnalyticsParam.PRODUCT_TYPE] = getProductType(scanResponse) params[AnalyticsParam.FIRMWARE] = card.firmwareVersion.stringValue + if (userWalletId != null) { + params[AnalyticsParam.USER_WALLET_ID] = userWalletId.stringValue + } ParamCardCurrencyConverter().convert(scanResponse.cardTypesResolver)?.let { params[AnalyticsParam.CURRENCY] = it.value diff --git a/core/analytics/models/src/main/java/com/tangem/core/analytics/models/AnalyticsParam.kt b/core/analytics/models/src/main/java/com/tangem/core/analytics/models/AnalyticsParam.kt index a20223d2cb..eb8ef3b54b 100644 --- a/core/analytics/models/src/main/java/com/tangem/core/analytics/models/AnalyticsParam.kt +++ b/core/analytics/models/src/main/java/com/tangem/core/analytics/models/AnalyticsParam.kt @@ -3,46 +3,46 @@ package com.tangem.core.analytics.models sealed class AnalyticsParam { sealed class CardBalanceState(val value: String) { - object Empty : CardBalanceState("Empty") - object Full : CardBalanceState("Full") - object CustomToken : CardBalanceState("Custom Token") - object BlockchainError : CardBalanceState("Blockchain Error") - object NoRate : CardBalanceState("No Rate") + data object Empty : CardBalanceState("Empty") + data object Full : CardBalanceState("Full") + data object CustomToken : CardBalanceState("Custom Token") + data object BlockchainError : CardBalanceState("Blockchain Error") + data object NoRate : CardBalanceState("No Rate") companion object } sealed class TokenBalanceState(val value: String) { - object Empty : TokenBalanceState("Empty") - object Full : TokenBalanceState("Full") + data object Empty : TokenBalanceState("Empty") + data object Full : TokenBalanceState("Full") } sealed class RateApp(val value: String) { - object Liked : RateApp("Liked") - object Disliked : RateApp("Disliked") - object Closed : RateApp("Close") + data object Liked : RateApp("Liked") + data object Disliked : RateApp("Disliked") + data object Closed : RateApp("Close") } sealed class OnOffState(val value: String) { - object On : OnOffState("On") - object Off : OnOffState("Off") + data object On : OnOffState("On") + data object Off : OnOffState("Off") } sealed class OrganizeSortType(val value: String) { - object ByBalance : OrganizeSortType("By Balance") - object Manually : OrganizeSortType("Manually") + data object ByBalance : OrganizeSortType("By Balance") + data object Manually : OrganizeSortType("Manually") } sealed class UserCode(val value: String) { - object AccessCode : UserCode("Access Code") - object Passcode : UserCode("Passcode") + data object AccessCode : UserCode("Access Code") + data object Passcode : UserCode("Passcode") } sealed class AccessCodeRecoveryStatus(val value: String) { val key: String = "Status" - object Enabled : AccessCodeRecoveryStatus("Enabled") - object Disabled : AccessCodeRecoveryStatus("Disabled") + data object Enabled : AccessCodeRecoveryStatus("Enabled") + data object Disabled : AccessCodeRecoveryStatus("Disabled") companion object { fun from(enabled: Boolean): AccessCodeRecoveryStatus { @@ -52,9 +52,9 @@ sealed class AnalyticsParam { } sealed class Error(val value: String) { - object App : Error("App Error") - object CardSdk : Error("Card Sdk Error") - object BlockchainSdk : Error("Blockchain Sdk Error") + data object App : Error("App Error") + data object CardSdk : Error("Card Sdk Error") + data object BlockchainSdk : Error("Blockchain Sdk Error") } sealed class ScreensSources(val value: String) { @@ -86,8 +86,8 @@ sealed class AnalyticsParam { val permissionType: String, ) : TxSentFrom("Approve"), TxData - object WalletConnect : TxSentFrom("WalletConnect") - object Sell : TxSentFrom("Sell") + data object WalletConnect : TxSentFrom("WalletConnect") + data object Sell : TxSentFrom("Sell") } sealed interface TxData { @@ -97,10 +97,10 @@ sealed class AnalyticsParam { } sealed class FeeType(val value: String) { - object Fixed : FeeType("Fixed") - object Min : FeeType("Min") - object Normal : FeeType("Normal") - object Max : FeeType("Max") + data object Fixed : FeeType("Fixed") + data object Min : FeeType("Min") + data object Normal : FeeType("Normal") + data object Max : FeeType("Max") companion object { fun fromString(feeType: String): FeeType { @@ -116,13 +116,13 @@ sealed class AnalyticsParam { } sealed class WalletCreationType(val value: String) { - object PrivateKey : WalletCreationType("Private key") - object NewSeed : WalletCreationType("New seed") - object SeedImport : WalletCreationType("Seed import") + data object PrivateKey : WalletCreationType("Private key") + data object NewSeed : WalletCreationType("New seed") + data object SeedImport : WalletCreationType("Seed import") } sealed class WalletType(val value: String) { - object MultiCurrency : WalletType(value = "Multicurrency") + data object MultiCurrency : WalletType(value = "Multicurrency") class SingleCurrency(currencyName: String) : WalletType(currencyName) }