Updated on 2026-08-14
This commit is contained in:
commit
9326fde22b
5 changed files with 28 additions and 19 deletions
|
|
@ -5,12 +5,12 @@ import com.tangem.core.analytics.models.AnalyticsParam.Key.PROVIDER
|
|||
import com.tangem.core.analytics.models.AnalyticsParam.Key.STATUS
|
||||
import com.tangem.core.analytics.models.AnalyticsParam.Key.TOKEN_PARAM
|
||||
|
||||
class TokenOnrampAnalyticsEvent(
|
||||
sealed class TokenOnrampAnalyticsEvent(
|
||||
event: String,
|
||||
params: Map<String, String> = mapOf(),
|
||||
) : AnalyticsEvent("Onramp", event, params) {
|
||||
|
||||
class OnrampStatusOpened(tokenSymbol: String, provider: String, fiatCurrency: String) : TokenScreenAnalyticsEvent(
|
||||
class OnrampStatusOpened(tokenSymbol: String, provider: String, fiatCurrency: String) : TokenOnrampAnalyticsEvent(
|
||||
event = "Onramp Status Opened",
|
||||
params = mapOf(
|
||||
TOKEN_PARAM to tokenSymbol,
|
||||
|
|
@ -20,7 +20,7 @@ class TokenOnrampAnalyticsEvent(
|
|||
)
|
||||
|
||||
class OnrampStatusChanged(tokenSymbol: String, status: String, provider: String, fiatCurrency: String) :
|
||||
TokenScreenAnalyticsEvent(
|
||||
TokenOnrampAnalyticsEvent(
|
||||
event = "Onramp Status",
|
||||
params = mapOf(
|
||||
TOKEN_PARAM to tokenSymbol,
|
||||
|
|
@ -30,12 +30,12 @@ class TokenOnrampAnalyticsEvent(
|
|||
),
|
||||
)
|
||||
|
||||
data object GoToProvider : TokenScreenAnalyticsEvent(event = "Button - Go To Provider")
|
||||
data object GoToProvider : TokenOnrampAnalyticsEvent(event = "Button - Go To Provider")
|
||||
|
||||
data class NoticeKYC(
|
||||
val tokenSymbol: String,
|
||||
val provider: String,
|
||||
) : TokenScreenAnalyticsEvent(
|
||||
) : TokenOnrampAnalyticsEvent(
|
||||
event = "Notice - KYC",
|
||||
params = mapOf(
|
||||
TOKEN_PARAM to tokenSymbol,
|
||||
|
|
|
|||
|
|
@ -297,17 +297,6 @@ internal class OnrampMainComponentModel @Inject constructor(
|
|||
lastUpdateState.value = null
|
||||
return
|
||||
}
|
||||
|
||||
if (checkLastInputState(quote)) {
|
||||
lastUpdateState.value = OnrampLastUpdate(
|
||||
quote.fromAmount,
|
||||
quote.countryCode,
|
||||
)
|
||||
|
||||
_state.update {
|
||||
amountStateFactory.getUpdatedProviderState(selectedQuote = quote, quotes = quotes)
|
||||
}
|
||||
}
|
||||
_state.update { amountStateFactory.getAmountSecondaryUpdatedState(quote = quote) }
|
||||
}
|
||||
|
||||
|
|
@ -322,7 +311,7 @@ internal class OnrampMainComponentModel @Inject constructor(
|
|||
val quoteToCheck = quotes.firstOrNull { it !is OnrampQuote.Error }
|
||||
|
||||
// Check if amount, country or currency has changed
|
||||
return if (checkLastInputState(quoteToCheck)) {
|
||||
val newQuote = if (checkLastInputState(quoteToCheck)) {
|
||||
quoteToCheck
|
||||
} else {
|
||||
val state = state.value as? OnrampMainComponentUM.Content
|
||||
|
|
@ -341,6 +330,20 @@ internal class OnrampMainComponentModel @Inject constructor(
|
|||
lastSelectedQuote
|
||||
}
|
||||
}
|
||||
newQuote?.let { updateProvider(newQuote, quotes) }
|
||||
|
||||
return newQuote
|
||||
}
|
||||
|
||||
private fun updateProvider(quote: OnrampQuote, quotes: List<OnrampQuote>) {
|
||||
lastUpdateState.value = OnrampLastUpdate(
|
||||
quote.fromAmount,
|
||||
quote.countryCode,
|
||||
)
|
||||
|
||||
_state.update {
|
||||
amountStateFactory.getUpdatedProviderState(selectedQuote = quote, quotes = quotes)
|
||||
}
|
||||
}
|
||||
|
||||
private fun onRetryQuotes() {
|
||||
|
|
|
|||
|
|
@ -213,7 +213,7 @@ internal class SetOnrampSuccessContentConverter(
|
|||
else -> if (externalTxId != null) {
|
||||
ExpressLinkUM.Content(
|
||||
icon = R.drawable.ic_copy_24,
|
||||
text = resourceReference(R.string.express_transaction_id, wrappedList(externalTxId)),
|
||||
text = stringReference(externalTxId),
|
||||
onClick = { onCopyClick(externalTxId) },
|
||||
)
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import com.tangem.domain.onramp.model.cache.OnrampTransaction
|
|||
import com.tangem.domain.onramp.model.error.OnrampError
|
||||
import com.tangem.domain.tokens.GetCryptoCurrencyUseCase
|
||||
import com.tangem.domain.tokens.model.CryptoCurrency
|
||||
import com.tangem.domain.tokens.model.analytics.TokenOnrampAnalyticsEvent
|
||||
import com.tangem.domain.wallets.usecase.GetUserWalletUseCase
|
||||
import com.tangem.features.onramp.component.OnrampSuccessComponent
|
||||
import com.tangem.features.onramp.impl.R
|
||||
|
|
@ -64,6 +65,7 @@ internal class OnrampSuccessComponentModel @Inject constructor(
|
|||
}
|
||||
|
||||
override fun goToProviderClick(providerLink: String) {
|
||||
analyticsEventHandler.send(TokenOnrampAnalyticsEvent.GoToProvider)
|
||||
urlOpener.openUrl(providerLink)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -116,7 +116,10 @@ internal class TokenDetailsOnrampTransactionStateConverter(
|
|||
}
|
||||
|
||||
private fun onProviderClick(externalTxUrl: String?) = if (externalTxUrl != null) {
|
||||
{ clickIntents.onGoToProviderClick(externalTxUrl) }
|
||||
{
|
||||
analyticsEventHandler.send(TokenOnrampAnalyticsEvent.GoToProvider)
|
||||
clickIntents.onGoToProviderClick(externalTxUrl)
|
||||
}
|
||||
} else {
|
||||
null
|
||||
}
|
||||
|
|
@ -270,6 +273,7 @@ internal class TokenDetailsOnrampTransactionStateConverter(
|
|||
icon = R.drawable.ic_arrow_top_right_24,
|
||||
text = resourceReference(R.string.common_go_to_provider),
|
||||
onClick = {
|
||||
analyticsEventHandler.send(TokenOnrampAnalyticsEvent.GoToProvider)
|
||||
clickIntents.onGoToProviderClick(externalTxUrl)
|
||||
},
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue