Updated on 2026-08-14

This commit is contained in:
Tangem 2023-07-25 18:28:09 +03:00
parent 1169ea6d84
commit 3d33a141d3
4 changed files with 25 additions and 8 deletions

View file

@ -173,7 +173,7 @@
<string name="main_no_backup_warning_title">Бэкап кошелька не был произведен</string>
<string name="main_page_balance">Баланс</string>
<string name="main_processing_full_amount">В сумме учтены не все монеты</string>
<string name="main_promotion_credited">1INCH токены будут зачислены на адрес вашего кошелька в сети %s в течение 24 часов</string>
<string name="main_promotion_credited">1INCH токены будут зачислены на адрес вашего кошелька в сети %s в течение 48 часов</string>
<string name="main_promotion_no_purchase">По вашему промокоду не было покупки кошелька, а значит вы не можете получить бонус. Купите кошелек Tangem, отсканируйте его в приложении и получите бонус.</string>
<string name="main_scan_card_warning_view_subtitle">Чтобы получить доступ ко всем сетям, вам необходимо отсканировать карту</string>
<string name="main_scan_card_warning_view_title">Отсканируйте карту</string>

View file

@ -170,7 +170,7 @@
<string name="main_no_backup_warning_title">Your wallet has not been backed up</string>
<string name="main_page_balance">Total balance</string>
<string name="main_processing_full_amount">The amount does not include some of your funds</string>
<string name="main_promotion_credited">1INCH tokens will be credited to your %s wallet address within 24 hours</string>
<string name="main_promotion_credited">1INCH tokens will be credited to your %s wallet address within 48 hours</string>
<string name="main_promotion_no_purchase">There was no purchase of a wallet using your promo code, which means you cannot receive a bonus. Buy Tangem wallet, scan it in the app, and get the bonus.</string>
<string name="main_scan_card_warning_view_subtitle">To access all the networks you need to scan the card</string>
<string name="main_scan_card_warning_view_title">Scan your card</string>

View file

@ -38,7 +38,10 @@ internal sealed class Learn2earnEvents(
params = mapOf(AnalyticsParam.CLIENT_TYPE to clientType.value),
)
class NoticeClaimSuccess : MainScreen("Notice - Claim Successed")
class NoticeClaimSuccess(clientType: AnalyticsParam.ClientType) : MainScreen(
event = "Notice - Successful Claim",
params = mapOf(AnalyticsParam.CLIENT_TYPE to clientType.value),
)
}
sealed class PromoScreen(
@ -65,6 +68,6 @@ internal sealed class AnalyticsParam {
}
companion object Key {
const val CLIENT_TYPE = "Client type"
const val CLIENT_TYPE = "Client Type"
}
}

View file

@ -141,11 +141,11 @@ class Learn2earnViewModel @Inject constructor(
}
private fun onButtonMainClick() {
if (interactor.isUserHadPromoCode() || interactor.isUserRegisteredInPromotion()) {
analytics.send(Learn2earnEvents.MainScreen.NoticeLear2earn(AnalyticsParam.ClientType.Old()))
val isUserHasPromo = interactor.isUserHadPromoCode()
analytics.send(Learn2earnEvents.MainScreen.NoticeLear2earn(getAnalyticsClientType(isUserHasPromo)))
if (isUserHasPromo || interactor.isUserRegisteredInPromotion()) {
requestAward()
} else {
analytics.send(Learn2earnEvents.MainScreen.NoticeLear2earn(AnalyticsParam.ClientType.New()))
subscribeToWebViewResultEvents()
router.openWebView(interactor.buildUriForOldUser(), interactor.getBasicAuthHeaders())
}
@ -159,7 +159,13 @@ class Learn2earnViewModel @Inject constructor(
.onSuccess { requestAwardResult ->
requestAwardResult.fold(
onSuccess = {
analytics.send(Learn2earnEvents.MainScreen.NoticeClaimSuccess())
analytics.send(
Learn2earnEvents.MainScreen.NoticeClaimSuccess(
clientType = getAnalyticsClientType(
isUserHasPromo = interactor.isUserHadPromoCode(),
),
),
)
val onHideDialog = {
uiState = uiState.updateViewsVisibility(isVisible = false)
.hideDialog()
@ -203,6 +209,14 @@ class Learn2earnViewModel @Inject constructor(
}
}
private fun getAnalyticsClientType(isUserHasPromo: Boolean): AnalyticsParam.ClientType {
return if (isUserHasPromo) {
AnalyticsParam.ClientType.New()
} else {
AnalyticsParam.ClientType.Old()
}
}
private fun createErrorDialog(error: PromotionError): MainScreenState.Dialog? {
return when (error) {
is PromotionError.CodeWasNotAppliedInShop -> {