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() -> {