Updated on 2026-08-14

This commit is contained in:
Tangem 2023-03-21 23:07:50 +08:00
parent f24a92f859
commit 9b6cb2f235
29 changed files with 195 additions and 119 deletions

View file

@ -23,7 +23,6 @@ class BasicEventsPreChecker {
fun tryToSend(converterData: BasicEventsSourceData) {
if (!isReadyToSend(converterData)) return
BasicSignInEventConverter().convert(converterData)?.let { Analytics.send(it) }
BasicTopUpEventConverter().convert(converterData)?.let { Analytics.send(it) }
}
@ -99,12 +98,8 @@ data class BasicEventsSourceData(
val walletState: WalletState,
val biometricsWalletDataModels: List<WalletDataModel>?,
) {
val batchId: String by lazy { scanResponse.card.batchId }
val userWalletIdStringValue: String? by lazy {
UserWalletIdBuilder.scanResponse(scanResponse)
.build()
?.stringValue
UserWalletIdBuilder.scanResponse(scanResponse).build()?.stringValue
}
val paramCardCurrency: AnalyticsParam.CardCurrency? by lazy {
@ -164,21 +159,6 @@ private class BalanceCalculator(
}
}
class BasicSignInEventConverter : Converter<BasicEventsSourceData, Basic.SignedIn?> {
override fun convert(value: BasicEventsSourceData): Basic.SignedIn? {
if (value.paramCardCurrency == null || value.userWalletIdStringValue == null) return null
return Basic.SignedIn(
state = value.paramCardBalanceState,
currency = value.paramCardCurrency!!,
batch = value.batchId,
).apply {
filterData = value.userWalletIdStringValue
}
}
}
class BasicTopUpEventConverter : Converter<BasicEventsSourceData, Basic.ToppedUp?> {
override fun convert(value: BasicEventsSourceData): Basic.ToppedUp? {

View file

@ -21,17 +21,21 @@ sealed class Basic(
)
class SignedIn(
state: AnalyticsParam.CardBalanceState,
currency: AnalyticsParam.CardCurrency,
batch: String,
signInType: SignInType,
) : Basic(
event = "Signed in",
params = mapOf(
"State" to state.value,
AnalyticsParam.Currency to currency.value,
AnalyticsParam.Batch to batch,
"Sign in type" to signInType.name,
),
)
) {
enum class SignInType {
Card, Biometric
}
}
class ToppedUp(currency: AnalyticsParam.CardCurrency) : Basic(
event = "Topped up",

View file

@ -58,7 +58,7 @@ sealed class Settings(
sealed class AppSettings(
event: String,
params: Map<String, String> = mapOf(),
) : Settings("Settings / App Settings", event, params) {
) : Settings(category = "Settings / App Settings", event = event, params = params) {
class SaveWalletSwitcherChanged(state: AnalyticsParam.OnOffState) : CardSettings(
event = "Save Wallet Switcher Changed",

View file

@ -52,6 +52,11 @@ sealed class Token(
params = mapOf("Token" to type.value),
)
object ShowWalletAddress : Token(
category = "Token",
event = "Button - Show the Wallet Address"
)
sealed class Receive(
event: String,
params: Map<String, String> = mapOf(),

View file

@ -1,27 +0,0 @@
package com.tangem.tap.common.analytics.filters
import com.tangem.core.analytics.api.AnalyticsEventFilter
import com.tangem.core.analytics.api.AnalyticsHandler
import com.tangem.core.analytics.AnalyticsEvent
import com.tangem.tap.common.analytics.events.Basic
/**
[REDACTED_AUTHOR]
*/
class BasicSignInFilter : AnalyticsEventFilter {
private val alreadySignedIn = mutableSetOf<String>()
override fun canBeAppliedTo(event: AnalyticsEvent): Boolean = event is Basic.SignedIn
override fun canBeSent(event: AnalyticsEvent): Boolean {
val userWalletId = event.filterData as? String ?: return false
val canBeSent = !alreadySignedIn.contains(userWalletId)
alreadySignedIn.add(userWalletId)
return canBeSent
}
override fun canBeConsumedByHandler(handler: AnalyticsHandler, event: AnalyticsEvent): Boolean = true
}