Updated on 2026-08-14
This commit is contained in:
parent
1c18447f39
commit
67261ac805
7 changed files with 17 additions and 36 deletions
|
|
@ -6,7 +6,6 @@ import com.tangem.datasource.api.promotion.models.*
|
|||
import com.tangem.feature.learn2earn.data.api.Learn2earnPreferenceStorage
|
||||
import com.tangem.feature.learn2earn.data.api.Learn2earnRepository
|
||||
import com.tangem.feature.learn2earn.data.models.PromoUserData
|
||||
import com.tangem.feature.learn2earn.data.toggles.Learn2earnFeatureToggleManager
|
||||
import com.tangem.utils.coroutines.AppCoroutineDispatcherProvider
|
||||
import kotlinx.coroutines.withContext
|
||||
import timber.log.Timber
|
||||
|
|
@ -15,7 +14,6 @@ import timber.log.Timber
|
|||
[REDACTED_AUTHOR]
|
||||
*/
|
||||
internal class DefaultLearn2earnRepository(
|
||||
override val featureToggleManager: Learn2earnFeatureToggleManager,
|
||||
private val preferencesStorage: Learn2earnPreferenceStorage,
|
||||
private val api: PromotionApi,
|
||||
private val dispatchers: AppCoroutineDispatcherProvider,
|
||||
|
|
|
|||
|
|
@ -2,15 +2,12 @@ package com.tangem.feature.learn2earn.data.api
|
|||
|
||||
import com.tangem.datasource.api.promotion.models.*
|
||||
import com.tangem.feature.learn2earn.data.models.PromoUserData
|
||||
import com.tangem.feature.learn2earn.data.toggles.Learn2earnFeatureToggleManager
|
||||
|
||||
/**
|
||||
[REDACTED_AUTHOR]
|
||||
*/
|
||||
interface Learn2earnRepository {
|
||||
|
||||
val featureToggleManager: Learn2earnFeatureToggleManager
|
||||
|
||||
fun getUserData(): PromoUserData
|
||||
|
||||
fun updateUserData(userData: PromoUserData)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package com.tangem.feature.learn2earn.data.di
|
|||
|
||||
import android.content.Context
|
||||
import com.squareup.moshi.Moshi
|
||||
import com.tangem.core.featuretoggle.manager.FeatureTogglesManager
|
||||
import com.tangem.datasource.api.promotion.PromotionApi
|
||||
import com.tangem.datasource.di.NetworkMoshi
|
||||
import com.tangem.datasource.di.PromotionOneInch
|
||||
|
|
@ -10,10 +9,6 @@ import com.tangem.feature.learn2earn.data.DefaultLearn2earnRepository
|
|||
import com.tangem.feature.learn2earn.data.DefaultPreferenceStorage
|
||||
import com.tangem.feature.learn2earn.data.api.Learn2earnPreferenceStorage
|
||||
import com.tangem.feature.learn2earn.data.api.Learn2earnRepository
|
||||
import com.tangem.feature.learn2earn.data.toggles.DevLearn2earnFeatureToggleManager
|
||||
import com.tangem.feature.learn2earn.data.toggles.Learn2earnFeatureToggleManager
|
||||
import com.tangem.feature.learn2earn.data.toggles.ProdLearn2earnFeatureToggleManager
|
||||
import com.tangem.feature.learn2earn.impl.BuildConfig
|
||||
import com.tangem.utils.coroutines.AppCoroutineDispatcherProvider
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
|
|
@ -24,17 +19,7 @@ import javax.inject.Singleton
|
|||
|
||||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
class Learn2earnDataModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideFeatureToggle(featureToggleManager: FeatureTogglesManager): Learn2earnFeatureToggleManager {
|
||||
return if (BuildConfig.DEBUG) {
|
||||
DevLearn2earnFeatureToggleManager()
|
||||
} else {
|
||||
ProdLearn2earnFeatureToggleManager(featureToggleManager)
|
||||
}
|
||||
}
|
||||
internal class Learn2earnDataModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
|
|
@ -45,14 +30,12 @@ class Learn2earnDataModule {
|
|||
@Provides
|
||||
@Singleton
|
||||
fun provideRepository(
|
||||
featureToggleManager: Learn2earnFeatureToggleManager,
|
||||
preferenceStorage: Learn2earnPreferenceStorage,
|
||||
@NetworkMoshi moshi: Moshi,
|
||||
@PromotionOneInch promotionApi: PromotionApi,
|
||||
dispatchers: AppCoroutineDispatcherProvider,
|
||||
): Learn2earnRepository {
|
||||
return DefaultLearn2earnRepository(
|
||||
featureToggleManager = featureToggleManager,
|
||||
preferencesStorage = preferenceStorage,
|
||||
api = promotionApi,
|
||||
dispatchers = dispatchers,
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import com.tangem.core.featuretoggle.manager.FeatureTogglesManager
|
|||
/**
|
||||
[REDACTED_AUTHOR]
|
||||
*/
|
||||
class ProdLearn2earnFeatureToggleManager(
|
||||
internal class DefaultLearn2earnFeatureToggleManager(
|
||||
private val featureTogglesManager: FeatureTogglesManager,
|
||||
) : Learn2earnFeatureToggleManager {
|
||||
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
package com.tangem.feature.learn2earn.data.toggles
|
||||
|
||||
/**
|
||||
[REDACTED_AUTHOR]
|
||||
*/
|
||||
class DevLearn2earnFeatureToggleManager : Learn2earnFeatureToggleManager {
|
||||
|
||||
override val isLearn2earnEnabled: Boolean
|
||||
get() = true
|
||||
}
|
||||
|
|
@ -5,6 +5,7 @@ import com.tangem.datasource.api.promotion.models.AbstractPromotionResponse
|
|||
import com.tangem.datasource.api.promotion.models.PromotionInfoResponse
|
||||
import com.tangem.feature.learn2earn.data.api.Learn2earnRepository
|
||||
import com.tangem.feature.learn2earn.data.models.PromoUserData
|
||||
import com.tangem.feature.learn2earn.data.toggles.Learn2earnFeatureToggleManager
|
||||
import com.tangem.feature.learn2earn.domain.api.*
|
||||
import com.tangem.feature.learn2earn.domain.models.Promotion
|
||||
import com.tangem.feature.learn2earn.domain.models.PromotionError
|
||||
|
|
@ -17,6 +18,7 @@ import com.tangem.lib.crypto.models.Currency
|
|||
[REDACTED_AUTHOR]
|
||||
*/
|
||||
class DefaultLearn2earnInteractor(
|
||||
private val featureToggleManager: Learn2earnFeatureToggleManager,
|
||||
private val repository: Learn2earnRepository,
|
||||
private val userWalletManager: UserWalletManager,
|
||||
private val derivationManager: DerivationManager,
|
||||
|
|
@ -207,7 +209,7 @@ class DefaultLearn2earnInteractor(
|
|||
private fun promotionIsActive(): Boolean {
|
||||
val userData = repository.getUserData()
|
||||
val isActive = when {
|
||||
!repository.featureToggleManager.isLearn2earnEnabled -> false
|
||||
!featureToggleManager.isLearn2earnEnabled -> false
|
||||
userData.isAlreadyReceivedAward -> false
|
||||
promotion.isError() -> false
|
||||
else -> {
|
||||
|
|
@ -220,7 +222,7 @@ class DefaultLearn2earnInteractor(
|
|||
}
|
||||
|
||||
private suspend fun initPromotionInfo() {
|
||||
promotion = if (repository.featureToggleManager.isLearn2earnEnabled) {
|
||||
promotion = if (featureToggleManager.isLearn2earnEnabled) {
|
||||
repository.getPromotionInfo()
|
||||
.fold(
|
||||
onSuccess = { response ->
|
||||
|
|
|
|||
|
|
@ -1,7 +1,10 @@
|
|||
package com.tangem.feature.learn2earn.domain.di
|
||||
|
||||
import android.content.Context
|
||||
import com.tangem.core.featuretoggle.manager.FeatureTogglesManager
|
||||
import com.tangem.feature.learn2earn.data.api.Learn2earnRepository
|
||||
import com.tangem.feature.learn2earn.data.toggles.DefaultLearn2earnFeatureToggleManager
|
||||
import com.tangem.feature.learn2earn.data.toggles.Learn2earnFeatureToggleManager
|
||||
import com.tangem.feature.learn2earn.domain.DefaultLearn2earnInteractor
|
||||
import com.tangem.feature.learn2earn.domain.api.Learn2earnDependencyProvider
|
||||
import com.tangem.feature.learn2earn.domain.api.Learn2earnInteractor
|
||||
|
|
@ -26,15 +29,23 @@ class Learn2earnDomainModule {
|
|||
return Learn2earnRouter(context)
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideFeatureToggle(featureToggleManager: FeatureTogglesManager): Learn2earnFeatureToggleManager {
|
||||
return DefaultLearn2earnFeatureToggleManager(featureToggleManager)
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideInteractor(
|
||||
featureToggleManager: Learn2earnFeatureToggleManager,
|
||||
repository: Learn2earnRepository,
|
||||
dependencyProvider: Learn2earnDependencyProvider,
|
||||
userWalletManager: UserWalletManager,
|
||||
derivationManager: DerivationManager,
|
||||
): Learn2earnInteractor {
|
||||
return DefaultLearn2earnInteractor(
|
||||
featureToggleManager = featureToggleManager,
|
||||
repository = repository,
|
||||
userWalletManager = userWalletManager,
|
||||
derivationManager = derivationManager,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue