Updated on 2026-08-14

This commit is contained in:
Tangem 2026-07-03 18:03:15 +05:00
parent ba572cf71f
commit 77683181c7
20 changed files with 189 additions and 145 deletions

View file

@ -1,26 +0,0 @@
package com.tangem.feature.referral.data
import androidx.datastore.preferences.core.booleanPreferencesKey
import com.tangem.datasource.local.preferences.AppPreferencesStore
import com.tangem.datasource.local.preferences.utils.getSyncOrDefault
import com.tangem.feature.referral.domain.MobileWalletPromoRepository
import javax.inject.Inject
internal class DefaultMobileWalletPromoRepository @Inject constructor(
private val appPreferencesStore: AppPreferencesStore,
) : MobileWalletPromoRepository {
override suspend fun shouldShowMobileWalletPromo(): Boolean {
return appPreferencesStore.getSyncOrDefault(key = SHOULD_SHOW_MOBILE_WALLET_PROMO_KEY, default = false)
}
override suspend fun setShouldShowMobileWalletPromo(shouldShowPromo: Boolean) {
appPreferencesStore.editData { preferences ->
preferences[SHOULD_SHOW_MOBILE_WALLET_PROMO_KEY] = shouldShowPromo
}
}
private companion object {
val SHOULD_SHOW_MOBILE_WALLET_PROMO_KEY = booleanPreferencesKey("should_show_mobile_wallet_promo")
}
}

View file

@ -2,13 +2,10 @@ package com.tangem.feature.referral.di
import com.tangem.blockchainsdk.utils.ExcludedBlockchains
import com.tangem.datasource.api.tangemTech.TangemTechApi
import com.tangem.datasource.local.preferences.AppPreferencesStore
import com.tangem.domain.common.wallets.UserWalletsListRepository
import com.tangem.feature.referral.converters.ReferralConverter
import com.tangem.feature.referral.data.DefaultMobileWalletPromoRepository
import com.tangem.feature.referral.data.ExternalReferralRepository
import com.tangem.feature.referral.data.ReferralRepositoryImpl
import com.tangem.feature.referral.domain.MobileWalletPromoRepository
import com.tangem.feature.referral.domain.ReferralRepository
import com.tangem.utils.coroutines.CoroutineDispatcherProvider
import dagger.Module
@ -56,11 +53,4 @@ class ReferralRepositoryModule {
excludedBlockchains = excludedBlockchains,
)
}
@Provides
@Singleton
fun provideMobileWalletPromoRepository(appPreferencesStore: AppPreferencesStore): MobileWalletPromoRepository =
DefaultMobileWalletPromoRepository(
appPreferencesStore = appPreferencesStore,
)
}

View file

@ -1,8 +0,0 @@
package com.tangem.feature.referral.domain
interface MobileWalletPromoRepository {
suspend fun shouldShowMobileWalletPromo(): Boolean
suspend fun setShouldShowMobileWalletPromo(shouldShowPromo: Boolean)
}

View file

@ -1,18 +0,0 @@
package com.tangem.feature.referral.domain
import arrow.core.Either
import com.tangem.domain.common.wallets.UserWalletsListRepository
import javax.inject.Inject
class SetShouldShowMobileWalletPromoUseCase @Inject constructor(
private val mobileWalletPromoRepository: MobileWalletPromoRepository,
private val userWalletsListRepository: UserWalletsListRepository,
) {
suspend operator fun invoke(shouldShowPromo: Boolean): Either<Throwable, Unit> = Either.catch {
val wallets = userWalletsListRepository.userWallets.value
if (wallets.isNullOrEmpty()) {
mobileWalletPromoRepository.setShouldShowMobileWalletPromo(shouldShowPromo)
}
}
}

View file

@ -1,12 +0,0 @@
package com.tangem.feature.referral.domain
import javax.inject.Inject
class ShouldShowMobileWalletPromoUseCase @Inject constructor(
private val mobileWalletPromoRepository: MobileWalletPromoRepository,
) {
suspend operator fun invoke(): Boolean {
return mobileWalletPromoRepository.shouldShowMobileWalletPromo()
}
}