Updated on 2026-08-14
This commit is contained in:
parent
e48ff5956d
commit
2633d562b5
6 changed files with 26 additions and 18 deletions
|
|
@ -8,42 +8,47 @@ sealed class TangemPayAnalyticsEvents(
|
|||
params: Map<String, String> = emptyMap(),
|
||||
) : AnalyticsEvent(category = categoryName, event = event, params = params) {
|
||||
|
||||
data object ActivationScreenOpened : TangemPayAnalyticsEvents(
|
||||
class ActivationScreenOpened : TangemPayAnalyticsEvents(
|
||||
categoryName = "Visa Onboarding",
|
||||
event = "Activation Screen Opened",
|
||||
event = "Visa Activation Screen Opened",
|
||||
)
|
||||
|
||||
data object ViewTermsClicked : TangemPayAnalyticsEvents(
|
||||
class ViewTermsClicked : TangemPayAnalyticsEvents(
|
||||
categoryName = "Visa Onboarding",
|
||||
event = "Button - Visa View Terms",
|
||||
)
|
||||
|
||||
data object GetCardClicked : TangemPayAnalyticsEvents(
|
||||
class GetCardClicked : TangemPayAnalyticsEvents(
|
||||
categoryName = "Visa Onboarding",
|
||||
event = "Button - Visa Get Card",
|
||||
)
|
||||
|
||||
data object KycFlowOpened : TangemPayAnalyticsEvents(
|
||||
class KycFlowOpened : TangemPayAnalyticsEvents(
|
||||
categoryName = "Visa Onboarding",
|
||||
event = "Visa KYC Flow Opened",
|
||||
)
|
||||
|
||||
data object IssuingBannerDisplayed : TangemPayAnalyticsEvents(
|
||||
class IssuingBannerDisplayed : TangemPayAnalyticsEvents(
|
||||
categoryName = "Visa Onboarding",
|
||||
event = "Visa Issuing Banner Displayed",
|
||||
)
|
||||
|
||||
data object MainScreenOpened : TangemPayAnalyticsEvents(
|
||||
class MainScreenOpened : TangemPayAnalyticsEvents(
|
||||
categoryName = "Visa Screen",
|
||||
event = "Visa Main Screen Opened",
|
||||
)
|
||||
|
||||
data object ReceiveFundsClicked : TangemPayAnalyticsEvents(
|
||||
class AddFundsClicked : TangemPayAnalyticsEvents(
|
||||
categoryName = "Visa Screen",
|
||||
event = "Button - Visa Add Funds",
|
||||
)
|
||||
|
||||
class ReceiveFundsClicked : TangemPayAnalyticsEvents(
|
||||
categoryName = "Visa Screen",
|
||||
event = "Button - Visa Receive",
|
||||
)
|
||||
|
||||
data object SwapClicked : TangemPayAnalyticsEvents(
|
||||
class SwapClicked : TangemPayAnalyticsEvents(
|
||||
categoryName = "Visa Screen",
|
||||
event = "Button - Visa Swap",
|
||||
)
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ class DefaultKycModel @Inject constructor(
|
|||
val uiState = _uiState.asStateFlow()
|
||||
|
||||
init {
|
||||
analytics.send(TangemPayAnalyticsEvents.KycFlowOpened)
|
||||
analytics.send(TangemPayAnalyticsEvents.KycFlowOpened())
|
||||
modelScope.launch {
|
||||
try {
|
||||
kycRepository.getKycStartInfo(params.userWalletId).getOrNull()?.let { _uiState.emit(it) }
|
||||
|
|
|
|||
|
|
@ -101,6 +101,7 @@ internal class TangemPayDetailsModel @Inject constructor(
|
|||
val bottomSheetNavigation: SlotNavigation<TangemPayDetailsNavigation> = SlotNavigation()
|
||||
|
||||
init {
|
||||
analytics.send(TangemPayAnalyticsEvents.MainScreenOpened())
|
||||
handleBalanceHiding()
|
||||
fetchAddToWalletBanner()
|
||||
fetchBalance()
|
||||
|
|
@ -212,6 +213,7 @@ internal class TangemPayDetailsModel @Inject constructor(
|
|||
}
|
||||
|
||||
override fun onClickAddFunds() {
|
||||
analytics.send(TangemPayAnalyticsEvents.AddFundsClicked())
|
||||
val currentBalance = balance
|
||||
val depositAddress = currentBalance?.depositAddress
|
||||
if (currentBalance == null || depositAddress == null) {
|
||||
|
|
@ -352,7 +354,7 @@ internal class TangemPayDetailsModel @Inject constructor(
|
|||
}
|
||||
|
||||
override fun onClickSwap(data: TangemPayTopUpData) {
|
||||
analytics.send(TangemPayAnalyticsEvents.SwapClicked)
|
||||
analytics.send(TangemPayAnalyticsEvents.SwapClicked())
|
||||
bottomSheetNavigation.dismiss()
|
||||
router.push(
|
||||
AppRoute.Swap(
|
||||
|
|
@ -371,7 +373,7 @@ internal class TangemPayDetailsModel @Inject constructor(
|
|||
}
|
||||
|
||||
override fun onClickReceive(data: TangemPayTopUpData) {
|
||||
analytics.send(TangemPayAnalyticsEvents.ReceiveFundsClicked)
|
||||
analytics.send(TangemPayAnalyticsEvents.ReceiveFundsClicked())
|
||||
bottomSheetNavigation.dismiss()
|
||||
val config = TokenReceiveConfig(
|
||||
shouldShowWarning = false,
|
||||
|
|
|
|||
|
|
@ -234,7 +234,7 @@ internal object TangemPayTxHistoryDetailsConverter :
|
|||
)
|
||||
is TangemPayTxHistoryItem.Spend -> persistentListOf(
|
||||
ButtonState(
|
||||
text = resourceReference(R.string.tangem_pay_dispute),
|
||||
text = resourceReference(R.string.tangem_pay_get_help),
|
||||
onClick = this.onDisputeClick,
|
||||
),
|
||||
)
|
||||
|
|
|
|||
|
|
@ -50,7 +50,6 @@ internal class TangemPayOnboardingModel @Inject constructor(
|
|||
field = MutableStateFlow(getInitialState())
|
||||
|
||||
init {
|
||||
analytics.send(TangemPayAnalyticsEvents.ActivationScreenOpened)
|
||||
modelScope.launch {
|
||||
when (params) {
|
||||
is TangemPayOnboardingComponent.Params.ContinueOnboarding -> {
|
||||
|
|
@ -66,6 +65,8 @@ internal class TangemPayOnboardingModel @Inject constructor(
|
|||
}
|
||||
|
||||
private fun showOnboarding() {
|
||||
// TODO: move analytics to init block [REDACTED_JIRA]
|
||||
analytics.send(TangemPayAnalyticsEvents.ActivationScreenOpened())
|
||||
uiState.update {
|
||||
TangemPayOnboardingScreenState.Content(
|
||||
onBack = it.onBack,
|
||||
|
|
@ -118,12 +119,12 @@ internal class TangemPayOnboardingModel @Inject constructor(
|
|||
}
|
||||
|
||||
private fun onTermsClick() {
|
||||
analytics.send(TangemPayAnalyticsEvents.ViewTermsClicked)
|
||||
analytics.send(TangemPayAnalyticsEvents.ViewTermsClicked())
|
||||
urlOpener.openUrl(TangemPayConstants.TERMS_AND_LIMITS_LINK)
|
||||
}
|
||||
|
||||
private fun onGetCardClick() {
|
||||
analytics.send(TangemPayAnalyticsEvents.GetCardClicked)
|
||||
analytics.send(TangemPayAnalyticsEvents.GetCardClicked())
|
||||
uiState.transformerUpdate(TangemPayOnboardingButtonLoadingTransformer(isLoading = true))
|
||||
modelScope.launch {
|
||||
// TODO implement selector
|
||||
|
|
|
|||
|
|
@ -27,8 +27,8 @@ internal class WalletTangemPayAnalyticsEventSender @Inject constructor(
|
|||
val event = when {
|
||||
customerInfo.orderStatus == OrderStatus.CANCELED -> return // ignore cancelled state on analytics
|
||||
!customerInfo.info.isKycApproved -> return // ignore kyc not approved state on analytics
|
||||
cardInfo != null && productInstance != null -> TangemPayAnalyticsEvents.MainScreenOpened
|
||||
else -> TangemPayAnalyticsEvents.IssuingBannerDisplayed
|
||||
cardInfo != null && productInstance != null -> return
|
||||
else -> TangemPayAnalyticsEvents.IssuingBannerDisplayed()
|
||||
}
|
||||
|
||||
if (sentEvents.add(event)) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue