Updated on 2026-08-14
This commit is contained in:
parent
70dd41a680
commit
eec502fddc
4 changed files with 57 additions and 10 deletions
|
|
@ -190,6 +190,19 @@ sealed class OnrampAnalyticsEvent(
|
|||
),
|
||||
)
|
||||
|
||||
data class RecentlyBuyClicked(
|
||||
private val tokenSymbol: String,
|
||||
private val providerName: String,
|
||||
private val paymentMethod: String,
|
||||
) : OnrampAnalyticsEvent(
|
||||
event = "Recently Used Clicked",
|
||||
params = mapOf(
|
||||
TOKEN_PARAM to tokenSymbol,
|
||||
PROVIDER to providerName,
|
||||
PAYMENT_METHOD to paymentMethod,
|
||||
),
|
||||
)
|
||||
|
||||
data object AllOffersClicked : OnrampAnalyticsEvent(
|
||||
event = "Button - All Offers",
|
||||
params = emptyMap(),
|
||||
|
|
|
|||
|
|
@ -6,7 +6,11 @@ internal interface OnrampV2Intents {
|
|||
fun onAmountValueChanged(value: String)
|
||||
fun openSettings()
|
||||
fun openCurrenciesList()
|
||||
fun onBuyClick(quote: OnrampProviderWithQuote.Data, onrampOfferAdvantagesUM: OnrampOfferAdvantagesUM)
|
||||
fun onBuyClick(
|
||||
quote: OnrampProviderWithQuote.Data,
|
||||
onrampOfferAdvantagesUM: OnrampOfferAdvantagesUM,
|
||||
categoryUM: OnrampOfferCategoryUM,
|
||||
)
|
||||
fun openProviders()
|
||||
fun onRefresh()
|
||||
}
|
||||
|
|
@ -37,10 +37,12 @@ internal class OnrampOffersStateFactory(
|
|||
is OnrampQuote.Error,
|
||||
-> Unit
|
||||
is OnrampQuote.Data -> {
|
||||
val advantages = mapOfferAdvantagesDTOtoUM(offer.advantages)
|
||||
val category = mapOfferCategoryDTOtoUM(block.category)
|
||||
allOffersUM.add(
|
||||
OnrampOfferUM(
|
||||
category = mapOfferCategoryDTOtoUM(block.category),
|
||||
advantages = mapOfferAdvantagesDTOtoUM(offer.advantages),
|
||||
category = category,
|
||||
advantages = advantages,
|
||||
paymentMethod = currentQuote.paymentMethod,
|
||||
providerName = currentQuote.provider.info.name,
|
||||
rate = currentQuote.toAmount.value.format {
|
||||
|
|
@ -58,7 +60,8 @@ internal class OnrampOffersStateFactory(
|
|||
toAmount = currentQuote.toAmount,
|
||||
fromAmount = currentQuote.fromAmount,
|
||||
),
|
||||
onrampOfferAdvantagesUM = mapOfferAdvantagesDTOtoUM(offer.advantages),
|
||||
onrampOfferAdvantagesUM = advantages,
|
||||
categoryUM = category,
|
||||
)
|
||||
},
|
||||
),
|
||||
|
|
|
|||
|
|
@ -124,7 +124,11 @@ internal class OnrampV2MainComponentModel @Inject constructor(
|
|||
bottomSheetNavigation.activate(OnrampV2MainBottomSheetConfig.CurrenciesList)
|
||||
}
|
||||
|
||||
override fun onBuyClick(quote: OnrampProviderWithQuote.Data, onrampOfferAdvantagesUM: OnrampOfferAdvantagesUM) {
|
||||
override fun onBuyClick(
|
||||
quote: OnrampProviderWithQuote.Data,
|
||||
onrampOfferAdvantagesUM: OnrampOfferAdvantagesUM,
|
||||
categoryUM: OnrampOfferCategoryUM,
|
||||
) {
|
||||
val currentContentState = state.value as? OnrampV2MainComponentUM.Content ?: return
|
||||
analyticsEventHandler.send(
|
||||
OnrampAnalyticsEvent.OnBuyClick(
|
||||
|
|
@ -133,11 +137,11 @@ internal class OnrampV2MainComponentModel @Inject constructor(
|
|||
tokenSymbol = params.cryptoCurrency.symbol,
|
||||
),
|
||||
)
|
||||
onrampOfferAdvantagesUM.toAnalyticsEvent(
|
||||
cryptoCurrencySymbol = params.cryptoCurrency.symbol,
|
||||
providerName = quote.provider.info.name,
|
||||
paymentMethodName = quote.paymentMethod.name,
|
||||
)?.let(analyticsEventHandler::send)
|
||||
sendOfferClickEvent(
|
||||
quote = quote,
|
||||
onrampOfferAdvantagesUM = onrampOfferAdvantagesUM,
|
||||
categoryUM = categoryUM,
|
||||
)
|
||||
params.openRedirectPage(quote)
|
||||
}
|
||||
|
||||
|
|
@ -351,6 +355,29 @@ internal class OnrampV2MainComponentModel @Inject constructor(
|
|||
)
|
||||
}
|
||||
|
||||
private fun sendOfferClickEvent(
|
||||
quote: OnrampProviderWithQuote.Data,
|
||||
onrampOfferAdvantagesUM: OnrampOfferAdvantagesUM,
|
||||
categoryUM: OnrampOfferCategoryUM,
|
||||
) {
|
||||
when (categoryUM) {
|
||||
OnrampOfferCategoryUM.RecentlyUsed -> {
|
||||
OnrampAnalyticsEvent.RecentlyBuyClicked(
|
||||
tokenSymbol = params.cryptoCurrency.symbol,
|
||||
providerName = quote.provider.info.name,
|
||||
paymentMethod = quote.paymentMethod.name,
|
||||
).let(analyticsEventHandler::send)
|
||||
}
|
||||
OnrampOfferCategoryUM.Recommended -> {
|
||||
onrampOfferAdvantagesUM.toAnalyticsEvent(
|
||||
cryptoCurrencySymbol = params.cryptoCurrency.symbol,
|
||||
providerName = quote.provider.info.name,
|
||||
paymentMethodName = quote.paymentMethod.name,
|
||||
)?.let(analyticsEventHandler::send)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private companion object {
|
||||
const val UPDATE_DELAY = 10_000L
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue