From 7daafed11b766a6fcb9c005eacfd1ebb41759d23 Mon Sep 17 00:00:00 2001 From: Tangem Date: Thu, 20 Jul 2023 12:16:52 +0300 Subject: [PATCH] Updated on 2026-08-14 --- core/res/src/main/res/values-ru/strings.xml | 2 +- .../domain/DefaultLearn2earnInteractor.kt | 19 ++++++++++++------- .../domain/api/Learn2earnInteractor.kt | 4 ++++ .../presentation/Learn2earnViewModel.kt | 15 +++++++++++---- 4 files changed, 28 insertions(+), 12 deletions(-) diff --git a/core/res/src/main/res/values-ru/strings.xml b/core/res/src/main/res/values-ru/strings.xml index 797b9dea53..ded2d07b72 100644 --- a/core/res/src/main/res/values-ru/strings.xml +++ b/core/res/src/main/res/values-ru/strings.xml @@ -165,7 +165,7 @@ Пройдите 3 урока и получите %d 1INCH токен на свой кошелек Пройдите 3 урока и получите %d 1INCH токена на свой кошелек - Пройдите 3 урока и получите %d 1INCH токена на свой кошелек + Пройдите 3 урока и получите %d 1INCH токенов на свой кошелек Пройдите 3 урока и получите %d 1INCH токенов на свой кошелек Управление токенами diff --git a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/domain/DefaultLearn2earnInteractor.kt b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/domain/DefaultLearn2earnInteractor.kt index 924c7f2e1a..6b3f438e02 100644 --- a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/domain/DefaultLearn2earnInteractor.kt +++ b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/domain/DefaultLearn2earnInteractor.kt @@ -207,20 +207,25 @@ internal class DefaultLearn2earnInteractor( } override fun isPromotionActive(): Boolean { - val userData = repository.getUserData() val isActive = when { !featureToggleManager.isLearn2earnEnabled -> false - userData.isAlreadyReceivedAward -> false - promotion.isError() -> false - else -> { - val data = promotion.getPromotionInfo().getData(userData.promoCode) - data.status == PromotionInfoResponse.Status.ACTIVE - } + repository.getUserData().isAlreadyReceivedAward -> false + else -> !promotion.isError() } return isActive } + override fun isPromotionActiveOnStories(): Boolean { + val isActiveStatus = promotion.getPromotionInfo().newCard.status == PromotionInfoResponse.Status.ACTIVE + return isPromotionActive() && isActiveStatus + } + + override fun isPromotionActiveOnMain(): Boolean { + val isActiveStatus = promotion.getPromotionInfo().oldCard.status == PromotionInfoResponse.Status.ACTIVE + return isPromotionActive() && isActiveStatus + } + private suspend fun initPromotionInfo() { promotion = if (featureToggleManager.isLearn2earnEnabled) { repository.getPromotionInfo() diff --git a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/domain/api/Learn2earnInteractor.kt b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/domain/api/Learn2earnInteractor.kt index d004288477..8498c9483e 100644 --- a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/domain/api/Learn2earnInteractor.kt +++ b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/domain/api/Learn2earnInteractor.kt @@ -16,6 +16,10 @@ interface Learn2earnInteractor : WebViewRedirectHandler { fun isPromotionActive(): Boolean + fun isPromotionActiveOnStories(): Boolean + + fun isPromotionActiveOnMain(): Boolean + suspend fun validateUserWallet(): PromotionError? fun isUserRegisteredInPromotion(): Boolean diff --git a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/Learn2earnViewModel.kt b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/Learn2earnViewModel.kt index a37a6a3427..18613b0f54 100644 --- a/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/Learn2earnViewModel.kt +++ b/features/learn2earn/impl/src/main/java/com/tangem/feature/learn2earn/presentation/Learn2earnViewModel.kt @@ -44,7 +44,9 @@ class Learn2earnViewModel @Inject constructor( private set init { - uiState = uiState.updateViewsVisibility(isVisible = interactor.isPromotionActive()) + uiState = uiState + .updateStoriesVisibility(isVisible = interactor.isPromotionActiveOnStories()) + .updateGetBonusVisibility(isVisible = interactor.isPromotionActiveOnMain()) } fun onMainScreenCreated() { @@ -56,8 +58,8 @@ class Learn2earnViewModel @Inject constructor( } private fun updateMainScreenViews() { - if (!interactor.isPromotionActive()) { - uiState = uiState.updateViewsVisibility(isVisible = false) + if (!interactor.isPromotionActiveOnMain()) { + uiState = uiState.updateGetBonusVisibility(isVisible = false) return } @@ -65,7 +67,12 @@ class Learn2earnViewModel @Inject constructor( val error = interactor.validateUserWallet() when { error == null -> { - updateUi { uiState.updateViewsVisibility(isVisible = true) } + updateUi { + uiState + .updateStoriesVisibility(isVisible = interactor.isPromotionActiveOnStories()) + .updateGetBonusVisibility(isVisible = interactor.isPromotionActiveOnMain()) + .changeGetBounsDescription(getBonusDescription()) + } } // additional check after the error has been handled by interactor !interactor.isPromotionActive() -> {