From 9216890135e75c322b420b7b6e8d0c72245dadce Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 13 Oct 2025 16:54:46 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tap/features/welcome/redux/WelcomeMiddleware.kt | 1 + .../java/com/tangem/core/analytics/models/Basic.kt | 2 ++ .../createwalletstart/CreateWalletStartModel.kt | 5 +++-- .../com/tangem/features/home/impl/model/HomeModel.kt | 5 +++-- .../wallet/analytics/WalletScreenAnalyticsEvent.kt | 7 +++++++ .../analytics/utils/SelectedWalletAnalyticsSender.kt | 10 +++++++++- 6 files changed, 25 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/welcome/redux/WelcomeMiddleware.kt b/app/src/main/java/com/tangem/tap/features/welcome/redux/WelcomeMiddleware.kt index be2955e491..6797731a84 100644 --- a/app/src/main/java/com/tangem/tap/features/welcome/redux/WelcomeMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/welcome/redux/WelcomeMiddleware.kt @@ -110,6 +110,7 @@ internal class WelcomeMiddleware { batch = scanResponse.card.batchId, signInType = signInType, walletsCount = userWalletsListManager.walletsCount.toString(), + isImported = userWallet.isImported, hasBackup = scanResponse.card.backupStatus?.isActive, ), ) diff --git a/core/analytics/models/src/main/java/com/tangem/core/analytics/models/Basic.kt b/core/analytics/models/src/main/java/com/tangem/core/analytics/models/Basic.kt index 875cf24182..9d2974a077 100644 --- a/core/analytics/models/src/main/java/com/tangem/core/analytics/models/Basic.kt +++ b/core/analytics/models/src/main/java/com/tangem/core/analytics/models/Basic.kt @@ -19,12 +19,14 @@ sealed class Basic( batch: String, signInType: SignInType, walletsCount: String, + isImported: Boolean, hasBackup: Boolean?, ) : Basic( event = "Signed in", params = buildMap { put(AnalyticsParam.CURRENCY, currency.value) put(AnalyticsParam.BATCH, batch) + put("Wallet Type", if (isImported) "Seed Phrase" else "Seedless") put("Sign in type", signInType.name) put("Wallets Count", walletsCount) if (hasBackup != null) { diff --git a/features/create-wallet-start/impl/src/main/kotlin/com/tangem/features/createwalletstart/CreateWalletStartModel.kt b/features/create-wallet-start/impl/src/main/kotlin/com/tangem/features/createwalletstart/CreateWalletStartModel.kt index 6441bbb2e2..c0051682a8 100644 --- a/features/create-wallet-start/impl/src/main/kotlin/com/tangem/features/createwalletstart/CreateWalletStartModel.kt +++ b/features/create-wallet-start/impl/src/main/kotlin/com/tangem/features/createwalletstart/CreateWalletStartModel.kt @@ -199,13 +199,13 @@ internal class CreateWalletStartModel @Inject constructor( }, ifRight = { setLoading(false) - sendSignedInCardAnalyticsEvent(scanResponse) + sendSignedInCardAnalyticsEvent(scanResponse = scanResponse, isImported = userWallet.isImported) appRouter.replaceAll(AppRoute.Wallet) }, ) } - private suspend fun sendSignedInCardAnalyticsEvent(scanResponse: ScanResponse) { + private suspend fun sendSignedInCardAnalyticsEvent(scanResponse: ScanResponse, isImported: Boolean) { val currency = ParamCardCurrencyConverter().convert(value = scanResponse.cardTypesResolver) if (currency != null) { analyticsEventHandler.send( @@ -214,6 +214,7 @@ internal class CreateWalletStartModel @Inject constructor( batch = scanResponse.card.batchId, signInType = SignInType.Card, walletsCount = userWalletsListRepository.userWalletsSync().size.toString(), + isImported = isImported, hasBackup = scanResponse.card.backupStatus?.isActive, ), ) diff --git a/features/home/impl/src/main/kotlin/com/tangem/features/home/impl/model/HomeModel.kt b/features/home/impl/src/main/kotlin/com/tangem/features/home/impl/model/HomeModel.kt index 1dd5728ec4..f82b96124a 100644 --- a/features/home/impl/src/main/kotlin/com/tangem/features/home/impl/model/HomeModel.kt +++ b/features/home/impl/src/main/kotlin/com/tangem/features/home/impl/model/HomeModel.kt @@ -202,13 +202,13 @@ internal class HomeModel @Inject constructor( ifRight = { reduxStateHolder.onUserWalletSelected(userWallet) setLoading(false) - sendSignedInCardAnalyticsEvent(scanResponse) + sendSignedInCardAnalyticsEvent(scanResponse, userWallet.isImported) appRouter.replaceAll(AppRoute.Wallet) }, ) } - private suspend fun sendSignedInCardAnalyticsEvent(scanResponse: ScanResponse) { + private suspend fun sendSignedInCardAnalyticsEvent(scanResponse: ScanResponse, isImported: Boolean) { val currency = ParamCardCurrencyConverter().convert(value = scanResponse.cardTypesResolver) if (currency != null) { analyticsEventHandler.send( @@ -217,6 +217,7 @@ internal class HomeModel @Inject constructor( batch = scanResponse.card.batchId, signInType = SignInType.Card, walletsCount = getWalletsCount().toString(), + isImported = isImported, hasBackup = scanResponse.card.backupStatus?.isActive, ), ) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/WalletScreenAnalyticsEvent.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/WalletScreenAnalyticsEvent.kt index 6e08203c24..135b2c2f6c 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/WalletScreenAnalyticsEvent.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/WalletScreenAnalyticsEvent.kt @@ -73,6 +73,13 @@ sealed class WalletScreenAnalyticsEvent { data object ScreenOpened : MainScreen(event = "Screen opened") + class WalletSelected(val isImported: Boolean) : MainScreen( + event = "Wallet Selected", + params = mapOf( + "Wallet Type" to if (isImported) "Seed Phrase" else "Seedless", + ), + ) + class EnableBiometrics(state: AnalyticsParam.OnOffState) : MainScreen( event = "Enable Biometric", params = mapOf("State" to state.value), diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/SelectedWalletAnalyticsSender.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/SelectedWalletAnalyticsSender.kt index 605a356fe0..90e94e979a 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/SelectedWalletAnalyticsSender.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/analytics/utils/SelectedWalletAnalyticsSender.kt @@ -29,6 +29,14 @@ internal class SelectedWalletAnalyticsSender @Inject constructor( * */ private fun getEvent(userWallet: UserWallet): AnalyticsEvent? = when { userWallet.isLocked -> WalletScreenAnalyticsEvent.MainScreen.WalletUnlock - else -> null + + else -> WalletScreenAnalyticsEvent.MainScreen.WalletSelected(userWallet.isImported()) + } + + private fun UserWallet.isImported(): Boolean { + return when (this) { + is UserWallet.Cold -> isImported + is UserWallet.Hot -> true + } } } \ No newline at end of file