Updated on 2026-08-14
This commit is contained in:
parent
c4f743745c
commit
7daafed11b
4 changed files with 28 additions and 12 deletions
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -16,6 +16,10 @@ interface Learn2earnInteractor : WebViewRedirectHandler {
|
|||
|
||||
fun isPromotionActive(): Boolean
|
||||
|
||||
fun isPromotionActiveOnStories(): Boolean
|
||||
|
||||
fun isPromotionActiveOnMain(): Boolean
|
||||
|
||||
suspend fun validateUserWallet(): PromotionError?
|
||||
|
||||
fun isUserRegisteredInPromotion(): Boolean
|
||||
|
|
|
|||
|
|
@ -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() -> {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue