Updated on 2026-08-14

This commit is contained in:
Tangem 2025-01-10 13:08:41 +05:00
parent fabac3cf5b
commit 563d95d75e
5 changed files with 42 additions and 4 deletions

View file

@ -1,9 +1,6 @@
package com.tangem.tap.di.domain
import com.tangem.domain.promo.PromoRepository
import com.tangem.domain.promo.ShouldShowRingPromoUseCase
import com.tangem.domain.promo.ShouldShowSwapPromoTokenUseCase
import com.tangem.domain.promo.ShouldShowSwapPromoWalletUseCase
import com.tangem.domain.promo.*
import dagger.Module
import dagger.Provides
import dagger.hilt.InstallIn
@ -33,4 +30,10 @@ internal object PromoDomainModule {
fun provideShouldShowSwapPromoTokenUseCase(promoRepository: PromoRepository): ShouldShowSwapPromoTokenUseCase {
return ShouldShowSwapPromoTokenUseCase(promoRepository)
}
@Provides
@Singleton
fun provideShouldShowSwapStoriesUseCase(promoRepository: PromoRepository): ShouldShowSwapStoriesUseCase {
return ShouldShowSwapStoriesUseCase(promoRepository)
}
}

View file

@ -113,6 +113,8 @@ object PreferencesKeys {
val WAS_LOG_FILE_CLEARED by lazy { booleanPreferencesKey(name = "wasLogFileCleared") }
val SHOULD_SHOW_SWAP_STORIES_KEY by lazy { booleanPreferencesKey("shouldShowSwapStories") }
// region Permission
fun getShouldShowPermission(permission: String) = booleanPreferencesKey("shouldShowPushPermission_$permission")

View file

@ -8,7 +8,9 @@ import com.tangem.datasource.local.preferences.PreferencesKeys.ADDED_WALLETS_WIT
import com.tangem.datasource.local.preferences.PreferencesKeys.IS_TOKEN_SWAP_PROMO_OKX_SHOW_KEY
import com.tangem.datasource.local.preferences.PreferencesKeys.IS_WALLET_SWAP_PROMO_OKX_SHOW_KEY
import com.tangem.datasource.local.preferences.PreferencesKeys.SHOULD_SHOW_RING_PROMO_KEY
import com.tangem.datasource.local.preferences.PreferencesKeys.SHOULD_SHOW_SWAP_STORIES_KEY
import com.tangem.datasource.local.preferences.utils.get
import com.tangem.datasource.local.preferences.utils.getSyncOrDefault
import com.tangem.datasource.local.preferences.utils.store
import com.tangem.domain.promo.PromoRepository
import com.tangem.domain.promo.models.PromoBanner
@ -89,6 +91,21 @@ internal class DefaultPromoRepository(
appPreferencesStore.store(key = SHOULD_SHOW_RING_PROMO_KEY, value = false)
}
override fun isReadyToShowSwapStories(): Flow<Boolean> {
return appPreferencesStore.get(SHOULD_SHOW_SWAP_STORIES_KEY, true)
}
override suspend fun isReadyToShowSwapStoriesSync(): Boolean {
return appPreferencesStore.getSyncOrDefault(SHOULD_SHOW_SWAP_STORIES_KEY, true)
}
override suspend fun setNeverToShowSwapStories() {
appPreferencesStore.store(
key = SHOULD_SHOW_SWAP_STORIES_KEY,
value = false,
)
}
private companion object {
private const val CHANGELLY_NAME = "changelly"
private const val OKX = "okx"

View file

@ -23,4 +23,10 @@ interface PromoRepository {
fun isReadyToShowRingPromo(userWalletId: UserWalletId): Flow<Boolean>
suspend fun setNeverToShowRingPromo()
fun isReadyToShowSwapStories(): Flow<Boolean>
suspend fun isReadyToShowSwapStoriesSync(): Boolean
suspend fun setNeverToShowSwapStories()
}

View file

@ -0,0 +1,10 @@
package com.tangem.domain.promo
import kotlinx.coroutines.flow.Flow
class ShouldShowSwapStoriesUseCase(private val promoRepository: PromoRepository) {
operator fun invoke(): Flow<Boolean> = promoRepository.isReadyToShowSwapStories()
suspend fun invokeSync(): Boolean = promoRepository.isReadyToShowSwapStoriesSync()
suspend fun neverToShow() = promoRepository.setNeverToShowSwapStories()
}