From 23416dba220262a63da8698ec009a9f60fe91695 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 18 Dec 2023 18:03:12 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../local/preferences/PreferencesKeys.kt | 2 +- .../settings/DefaultSwapPromoRepository.kt | 19 ++++++++----------- .../ShouldShowSwapPromoTokenUseCase.kt | 6 ++---- .../repositories/SwapPromoRepository.kt | 4 ++-- .../tokens/GetCurrencyWarningsUseCase.kt | 2 +- .../viewmodels/TokenDetailsViewModel.kt | 4 ++-- 6 files changed, 16 insertions(+), 21 deletions(-) diff --git a/core/datasource/src/main/java/com/tangem/datasource/local/preferences/PreferencesKeys.kt b/core/datasource/src/main/java/com/tangem/datasource/local/preferences/PreferencesKeys.kt index ffa0aeee60..26d5b3cf08 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/local/preferences/PreferencesKeys.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/local/preferences/PreferencesKeys.kt @@ -45,7 +45,7 @@ object PreferencesKeys { val IS_WALLET_SWAP_PROMO_SHOW_KEY by lazy { booleanPreferencesKey(name = "isWalletSwapPromoShown") } - val IS_TOKEN_SWAP_PROMO_SHOW_KEY by lazy { stringSetPreferencesKey(name = "isTokenSwapPromoShown") } + val IS_TOKEN_SWAP_PROMO_SHOW_KEY by lazy { booleanPreferencesKey(name = "isTokenSwapPromoShown") } } /** Preferences keys set that should be migrated from "PreferencesDataSource" to a new DataStore */ diff --git a/data/settings/src/main/java/com/tangem/data/settings/DefaultSwapPromoRepository.kt b/data/settings/src/main/java/com/tangem/data/settings/DefaultSwapPromoRepository.kt index cfdc97ba1c..dd94a2e07c 100644 --- a/data/settings/src/main/java/com/tangem/data/settings/DefaultSwapPromoRepository.kt +++ b/data/settings/src/main/java/com/tangem/data/settings/DefaultSwapPromoRepository.kt @@ -21,9 +21,9 @@ class DefaultSwapPromoRepository( .map { it && checkPromoPeriod() } } - override fun isReadyToShowToken(userWalletId: String, currencyId: String): Flow { - return appPreferencesStore.get(IS_TOKEN_SWAP_PROMO_SHOW_KEY, emptySet()) - .map { !it.contains(userWalletId + currencyId) && checkPromoPeriod() } + override fun isReadyToShowToken(): Flow { + return appPreferencesStore.get(IS_TOKEN_SWAP_PROMO_SHOW_KEY, true) + .map { it && checkPromoPeriod() } } override suspend fun setNeverToShowWallet() { @@ -33,14 +33,11 @@ class DefaultSwapPromoRepository( ) } - override suspend fun setNeverToShowToken(userWalletId: String, currencyId: String) { - appPreferencesStore.editData { mutablePreferences -> - val storesCurrencies = mutablePreferences.getOrDefault(IS_TOKEN_SWAP_PROMO_SHOW_KEY, emptySet()) - mutablePreferences.set( - key = IS_TOKEN_SWAP_PROMO_SHOW_KEY, - value = storesCurrencies.toMutableSet().apply { add(userWalletId + currencyId) }, - ) - } + override suspend fun setNeverToShowToken() { + appPreferencesStore.store( + key = IS_TOKEN_SWAP_PROMO_SHOW_KEY, + value = false, + ) } private fun checkPromoPeriod(): Boolean { diff --git a/domain/settings/src/main/java/com/tangem/domain/settings/ShouldShowSwapPromoTokenUseCase.kt b/domain/settings/src/main/java/com/tangem/domain/settings/ShouldShowSwapPromoTokenUseCase.kt index 6d7b0b30f9..0c75a4f52a 100644 --- a/domain/settings/src/main/java/com/tangem/domain/settings/ShouldShowSwapPromoTokenUseCase.kt +++ b/domain/settings/src/main/java/com/tangem/domain/settings/ShouldShowSwapPromoTokenUseCase.kt @@ -5,9 +5,7 @@ import kotlinx.coroutines.flow.Flow class ShouldShowSwapPromoTokenUseCase(private val swapPromoRepository: SwapPromoRepository) { - operator fun invoke(userWalletId: String, currencyId: String): Flow = - swapPromoRepository.isReadyToShowToken(userWalletId, currencyId) + operator fun invoke(): Flow = swapPromoRepository.isReadyToShowToken() - suspend fun neverToShow(userWalletId: String, currencyId: String) = - swapPromoRepository.setNeverToShowToken(userWalletId, currencyId) + suspend fun neverToShow() = swapPromoRepository.setNeverToShowToken() } \ No newline at end of file diff --git a/domain/settings/src/main/java/com/tangem/domain/settings/repositories/SwapPromoRepository.kt b/domain/settings/src/main/java/com/tangem/domain/settings/repositories/SwapPromoRepository.kt index 96d180f4df..95d31f65d8 100644 --- a/domain/settings/src/main/java/com/tangem/domain/settings/repositories/SwapPromoRepository.kt +++ b/domain/settings/src/main/java/com/tangem/domain/settings/repositories/SwapPromoRepository.kt @@ -5,9 +5,9 @@ import kotlinx.coroutines.flow.Flow interface SwapPromoRepository { fun isReadyToShowWallet(): Flow - fun isReadyToShowToken(userWalletId: String, currencyId: String): Flow + fun isReadyToShowToken(): Flow suspend fun setNeverToShowWallet() - suspend fun setNeverToShowToken(userWalletId: String, currencyId: String) + suspend fun setNeverToShowToken() } \ No newline at end of file diff --git a/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/GetCurrencyWarningsUseCase.kt b/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/GetCurrencyWarningsUseCase.kt index ae959e251d..2998ea46b9 100644 --- a/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/GetCurrencyWarningsUseCase.kt +++ b/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/GetCurrencyWarningsUseCase.kt @@ -85,7 +85,7 @@ class GetCurrencyWarningsUseCase( val currency = currencyStatus.currency val cryptoStatuses = operations.getCurrenciesStatusesSync() return combine( - showSwapPromoTokenUseCase(userWalletId.stringValue, currency.id.value).conflate(), + showSwapPromoTokenUseCase().conflate(), flowOf(marketCryptoCurrencyRepository.isExchangeable(userWalletId, currency)).conflate(), ) { shouldShowSwapPromo, isExchangeable -> if (shouldShowSwapPromo && isExchangeable) { diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/viewmodels/TokenDetailsViewModel.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/viewmodels/TokenDetailsViewModel.kt index 06039c3878..1e23353d4a 100644 --- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/viewmodels/TokenDetailsViewModel.kt +++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/presentation/tokendetails/viewmodels/TokenDetailsViewModel.kt @@ -563,14 +563,14 @@ internal class TokenDetailsViewModel @Inject constructor( override fun onSwapPromoDismiss() { viewModelScope.launch(dispatchers.main) { - shouldShowSwapPromoTokenUseCase.neverToShow(userWalletId.stringValue, cryptoCurrency.id.value) + shouldShowSwapPromoTokenUseCase.neverToShow() analyticsEventsHandler.send(TokenSwapPromoAnalyticsEvent.Close) } } override fun onSwapPromoClick() { viewModelScope.launch(dispatchers.main) { - shouldShowSwapPromoTokenUseCase.neverToShow(userWalletId.stringValue, cryptoCurrency.id.value) + shouldShowSwapPromoTokenUseCase.neverToShow() analyticsEventsHandler.send(TokenSwapPromoAnalyticsEvent.Exchange(cryptoCurrency.symbol)) } onSwapClick()