Updated on 2026-08-14

This commit is contained in:
Tangem 2025-10-13 16:54:46 +03:00
parent 8c37dbd5b0
commit 9216890135
6 changed files with 25 additions and 5 deletions

View file

@ -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,
),
)

View file

@ -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,
),
)

View file

@ -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),

View file

@ -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
}
}
}