diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e090880fa9..78e6b5ccde 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -155,8 +155,8 @@ dependencies { implementation(projects.domain.nft.models) implementation(projects.domain.offramp) implementation(projects.domain.onramp) - implementation(projects.domain.promo) - implementation(projects.domain.promo.models) + implementation(projects.domain.stories) + implementation(projects.domain.stories.models) implementation(projects.domain.networks) implementation(projects.domain.quotes) implementation(projects.domain.notifications) @@ -207,7 +207,7 @@ dependencies { implementation(projects.data.analytics) implementation(projects.data.transaction) implementation(projects.data.visa) - implementation(projects.data.promo) + implementation(projects.data.stories) implementation(projects.data.onboarding) implementation(projects.data.dynamicAddresses) implementation(projects.data.feedback) diff --git a/app/src/main/java/com/tangem/tap/di/domain/PromoDomainModule.kt b/app/src/main/java/com/tangem/tap/di/domain/StoriesDomainModule.kt similarity index 50% rename from app/src/main/java/com/tangem/tap/di/domain/PromoDomainModule.kt rename to app/src/main/java/com/tangem/tap/di/domain/StoriesDomainModule.kt index 3c11cda465..b5cf232b9f 100644 --- a/app/src/main/java/com/tangem/tap/di/domain/PromoDomainModule.kt +++ b/app/src/main/java/com/tangem/tap/di/domain/StoriesDomainModule.kt @@ -1,8 +1,8 @@ package com.tangem.tap.di.domain -import com.tangem.domain.promo.GetStoryContentUseCase -import com.tangem.domain.promo.PromoRepository -import com.tangem.domain.promo.ShouldShowStoriesUseCase +import com.tangem.domain.stories.GetStoryContentUseCase +import com.tangem.domain.stories.StoriesRepository +import com.tangem.domain.stories.ShouldShowStoriesUseCase import com.tangem.domain.settings.repositories.SettingsRepository import dagger.Module import dagger.Provides @@ -12,20 +12,20 @@ import javax.inject.Singleton @Module @InstallIn(SingletonComponent::class) -internal object PromoDomainModule { +internal object StoriesDomainModule { @Provides @Singleton - fun provideShouldShowSwapStoriesUseCase(promoRepository: PromoRepository): ShouldShowStoriesUseCase { - return ShouldShowStoriesUseCase(promoRepository) + fun provideShouldShowStoriesUseCase(storiesRepository: StoriesRepository): ShouldShowStoriesUseCase { + return ShouldShowStoriesUseCase(storiesRepository) } @Provides @Singleton fun provideGetStoryContentUseCase( - promoRepository: PromoRepository, + storiesRepository: StoriesRepository, settingsRepository: SettingsRepository, ): GetStoryContentUseCase { - return GetStoryContentUseCase(promoRepository, settingsRepository) + return GetStoryContentUseCase(storiesRepository, settingsRepository) } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/di/domain/TokensDomainModule.kt b/app/src/main/java/com/tangem/tap/di/domain/TokensDomainModule.kt index 86efd11849..f852d91fc1 100644 --- a/app/src/main/java/com/tangem/tap/di/domain/TokensDomainModule.kt +++ b/app/src/main/java/com/tangem/tap/di/domain/TokensDomainModule.kt @@ -10,7 +10,7 @@ import com.tangem.domain.networks.multi.MultiNetworkStatusFetcher import com.tangem.domain.networks.repository.NetworksRepository import com.tangem.domain.networks.single.SingleNetworkStatusFetcher import com.tangem.domain.pay.flow.PaymentAccountStatusFetcher -import com.tangem.domain.promo.PromoRepository +import com.tangem.domain.stories.StoriesRepository import com.tangem.domain.quotes.multi.MultiQuoteStatusFetcher import com.tangem.domain.staking.StakingIdFactory import com.tangem.domain.staking.multi.MultiStakingBalanceFetcher @@ -55,14 +55,14 @@ internal object TokensDomainModule { rampStateManager: RampStateManager, walletManagersFacade: WalletManagersFacade, stakingRepository: StakingRepository, - promoRepository: PromoRepository, + storiesRepository: StoriesRepository, dispatchers: CoroutineDispatcherProvider, ): GetCryptoCurrencyActionsUseCase { return GetCryptoCurrencyActionsUseCase( rampManager = rampStateManager, walletManagersFacade = walletManagersFacade, stakingRepository = stakingRepository, - promoRepository = promoRepository, + storiesRepository = storiesRepository, dispatchers = dispatchers, ) } diff --git a/app/src/main/java/com/tangem/tap/features/main/MainViewModel.kt b/app/src/main/java/com/tangem/tap/features/main/MainViewModel.kt index 5fb9bba066..34881a8063 100644 --- a/app/src/main/java/com/tangem/tap/features/main/MainViewModel.kt +++ b/app/src/main/java/com/tangem/tap/features/main/MainViewModel.kt @@ -27,8 +27,8 @@ import com.tangem.domain.notifications.SendPushTokenUseCase import com.tangem.domain.notifications.models.ApplicationId import com.tangem.domain.notifications.models.NotificationsError import com.tangem.domain.onramp.FetchHotCryptoUseCase -import com.tangem.domain.promo.GetStoryContentUseCase -import com.tangem.domain.promo.models.StoryContentIds +import com.tangem.domain.stories.GetStoryContentUseCase +import com.tangem.domain.stories.models.StoryContentIds import com.tangem.domain.quotes.multi.MultiQuoteUpdater import com.tangem.domain.settings.DeleteDeprecatedLogsUseCase import com.tangem.domain.settings.IncrementAppLaunchCounterUseCase diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/promotion/models/StoryContentResponse.kt b/core/datasource/src/main/java/com/tangem/datasource/api/stories/models/StoryContentResponse.kt similarity index 92% rename from core/datasource/src/main/java/com/tangem/datasource/api/promotion/models/StoryContentResponse.kt rename to core/datasource/src/main/java/com/tangem/datasource/api/stories/models/StoryContentResponse.kt index b376d2392c..40280e610d 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/promotion/models/StoryContentResponse.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/stories/models/StoryContentResponse.kt @@ -1,4 +1,4 @@ -package com.tangem.datasource.api.promotion.models +package com.tangem.datasource.api.stories.models import com.squareup.moshi.Json import com.squareup.moshi.JsonClass diff --git a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/TangemTechApi.kt b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/TangemTechApi.kt index 2d1b924b27..9a515ad755 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/TangemTechApi.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/api/tangemTech/TangemTechApi.kt @@ -1,7 +1,7 @@ package com.tangem.datasource.api.tangemTech import com.tangem.datasource.api.common.response.ApiResponse -import com.tangem.datasource.api.promotion.models.StoryContentResponse +import com.tangem.datasource.api.stories.models.StoryContentResponse import com.tangem.datasource.api.tangemTech.models.* import com.tangem.datasource.api.tangemTech.models.promobanners.PromoBannerDisplaysResponse import com.tangem.datasource.api.tangemTech.models.promobanners.DismissPromoBannerRequest diff --git a/core/datasource/src/main/java/com/tangem/datasource/di/PromoStoreModule.kt b/core/datasource/src/main/java/com/tangem/datasource/di/StoriesStoreModule.kt similarity index 54% rename from core/datasource/src/main/java/com/tangem/datasource/di/PromoStoreModule.kt rename to core/datasource/src/main/java/com/tangem/datasource/di/StoriesStoreModule.kt index b8af7137ae..1d952fc16c 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/di/PromoStoreModule.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/di/StoriesStoreModule.kt @@ -1,8 +1,8 @@ package com.tangem.datasource.di import com.tangem.datasource.local.datastore.RuntimeDataStore -import com.tangem.datasource.local.promo.DefaultPromoStoriesStore -import com.tangem.datasource.local.promo.PromoStoriesStore +import com.tangem.datasource.local.stories.DefaultStoriesStore +import com.tangem.datasource.local.stories.StoriesStore import dagger.Module import dagger.Provides import dagger.hilt.InstallIn @@ -11,11 +11,11 @@ import javax.inject.Singleton @Module @InstallIn(SingletonComponent::class) -object PromoStoreModule { +object StoriesStoreModule { @Provides @Singleton - fun providePromoStoriesStore(): PromoStoriesStore { - return DefaultPromoStoriesStore(dataStore = RuntimeDataStore()) + fun provideStoriesStore(): StoriesStore { + return DefaultStoriesStore(dataStore = RuntimeDataStore()) } } \ No newline at end of file diff --git a/core/datasource/src/main/java/com/tangem/datasource/local/promo/DefaultPromoStoriesStore.kt b/core/datasource/src/main/java/com/tangem/datasource/local/stories/DefaultStoriesStore.kt similarity index 75% rename from core/datasource/src/main/java/com/tangem/datasource/local/promo/DefaultPromoStoriesStore.kt rename to core/datasource/src/main/java/com/tangem/datasource/local/stories/DefaultStoriesStore.kt index b558879687..865cbf6aeb 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/local/promo/DefaultPromoStoriesStore.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/local/stories/DefaultStoriesStore.kt @@ -1,12 +1,12 @@ -package com.tangem.datasource.local.promo +package com.tangem.datasource.local.stories -import com.tangem.datasource.api.promotion.models.StoryContentResponse +import com.tangem.datasource.api.stories.models.StoryContentResponse import com.tangem.datasource.local.datastore.core.StringKeyDataStore import kotlinx.coroutines.flow.Flow -internal class DefaultPromoStoriesStore( +internal class DefaultStoriesStore( private val dataStore: StringKeyDataStore, -) : PromoStoriesStore { +) : StoriesStore { override suspend fun getSyncOrNull(storyId: String): StoryContentResponse? { return dataStore.getSyncOrNull(storyId) } diff --git a/core/datasource/src/main/java/com/tangem/datasource/local/promo/PromoStoriesStore.kt b/core/datasource/src/main/java/com/tangem/datasource/local/stories/StoriesStore.kt similarity index 62% rename from core/datasource/src/main/java/com/tangem/datasource/local/promo/PromoStoriesStore.kt rename to core/datasource/src/main/java/com/tangem/datasource/local/stories/StoriesStore.kt index bcf6617b16..7a15f43fb7 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/local/promo/PromoStoriesStore.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/local/stories/StoriesStore.kt @@ -1,9 +1,9 @@ -package com.tangem.datasource.local.promo +package com.tangem.datasource.local.stories -import com.tangem.datasource.api.promotion.models.StoryContentResponse +import com.tangem.datasource.api.stories.models.StoryContentResponse import kotlinx.coroutines.flow.Flow -interface PromoStoriesStore { +interface StoriesStore { suspend fun getSyncOrNull(storyId: String): StoryContentResponse? fun get(storyId: String): Flow diff --git a/data/promo/.gitignore b/data/stories/.gitignore similarity index 100% rename from data/promo/.gitignore rename to data/stories/.gitignore diff --git a/data/promo/build.gradle.kts b/data/stories/build.gradle.kts similarity index 80% rename from data/promo/build.gradle.kts rename to data/stories/build.gradle.kts index 1b7b5eac13..95fa9bc8ff 100644 --- a/data/promo/build.gradle.kts +++ b/data/stories/build.gradle.kts @@ -7,7 +7,7 @@ plugins { } android { - namespace = "com.tangem.data.promo" + namespace = "com.tangem.data.stories" } dependencies { @@ -16,8 +16,8 @@ dependencies { implementation(deps.hilt.android) kapt(deps.hilt.kapt) - implementation(projects.domain.promo) - implementation(projects.domain.promo.models) + implementation(projects.domain.stories) + implementation(projects.domain.stories.models) api(projects.domain.models) implementation(projects.domain.wallets.models) implementation(projects.features.referral.domain) diff --git a/data/promo/src/main/java/com/tangem/data/promo/DefaultPromoRepository.kt b/data/stories/src/main/java/com/tangem/data/stories/DefaultStoriesRepository.kt similarity index 87% rename from data/promo/src/main/java/com/tangem/data/promo/DefaultPromoRepository.kt rename to data/stories/src/main/java/com/tangem/data/stories/DefaultStoriesRepository.kt index d4c1cdc137..359bd64ee1 100644 --- a/data/promo/src/main/java/com/tangem/data/promo/DefaultPromoRepository.kt +++ b/data/stories/src/main/java/com/tangem/data/stories/DefaultStoriesRepository.kt @@ -1,6 +1,6 @@ -package com.tangem.data.promo +package com.tangem.data.stories -import com.tangem.data.promo.converters.StoryContentResponseConverter +import com.tangem.data.stories.converters.StoryContentResponseConverter import com.tangem.datasource.api.common.response.getOrThrow import com.tangem.datasource.api.tangemTech.TangemTechApi import com.tangem.datasource.local.preferences.AppPreferencesStore @@ -8,21 +8,21 @@ import com.tangem.datasource.local.preferences.PreferencesKeys 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.datasource.local.promo.PromoStoriesStore -import com.tangem.domain.promo.PromoRepository -import com.tangem.domain.promo.models.StoryContent +import com.tangem.datasource.local.stories.StoriesStore +import com.tangem.domain.stories.StoriesRepository +import com.tangem.domain.stories.models.StoryContent import com.tangem.utils.coroutines.CoroutineDispatcherProvider import com.tangem.utils.coroutines.runSuspendCatching import kotlinx.coroutines.flow.* import kotlinx.coroutines.withContext import kotlinx.coroutines.withTimeoutOrNull -internal class DefaultPromoRepository( +internal class DefaultStoriesRepository( private val tangemApi: TangemTechApi, private val appPreferencesStore: AppPreferencesStore, - private val promoStoriesStore: PromoStoriesStore, + private val promoStoriesStore: StoriesStore, private val dispatchers: CoroutineDispatcherProvider, -) : PromoRepository { +) : StoriesRepository { private val storyContentConverter = StoryContentResponseConverter() diff --git a/data/promo/src/main/java/com/tangem/data/promo/converters/StoryContentResponseConverter.kt b/data/stories/src/main/java/com/tangem/data/stories/converters/StoryContentResponseConverter.kt similarity index 79% rename from data/promo/src/main/java/com/tangem/data/promo/converters/StoryContentResponseConverter.kt rename to data/stories/src/main/java/com/tangem/data/stories/converters/StoryContentResponseConverter.kt index 5cf9738597..f70490d99b 100644 --- a/data/promo/src/main/java/com/tangem/data/promo/converters/StoryContentResponseConverter.kt +++ b/data/stories/src/main/java/com/tangem/data/stories/converters/StoryContentResponseConverter.kt @@ -1,7 +1,7 @@ -package com.tangem.data.promo.converters +package com.tangem.data.stories.converters -import com.tangem.datasource.api.promotion.models.StoryContentResponse -import com.tangem.domain.promo.models.StoryContent +import com.tangem.datasource.api.stories.models.StoryContentResponse +import com.tangem.domain.stories.models.StoryContent import com.tangem.utils.converter.Converter internal class StoryContentResponseConverter : Converter { diff --git a/data/promo/src/main/java/com/tangem/data/promo/di/PromoDataModule.kt b/data/stories/src/main/java/com/tangem/data/stories/di/StoriesDataModule.kt similarity index 66% rename from data/promo/src/main/java/com/tangem/data/promo/di/PromoDataModule.kt rename to data/stories/src/main/java/com/tangem/data/stories/di/StoriesDataModule.kt index a564ef0509..f3d6f15242 100644 --- a/data/promo/src/main/java/com/tangem/data/promo/di/PromoDataModule.kt +++ b/data/stories/src/main/java/com/tangem/data/stories/di/StoriesDataModule.kt @@ -1,10 +1,10 @@ -package com.tangem.data.promo.di +package com.tangem.data.stories.di -import com.tangem.data.promo.DefaultPromoRepository +import com.tangem.data.stories.DefaultStoriesRepository import com.tangem.datasource.api.tangemTech.TangemTechApi import com.tangem.datasource.local.preferences.AppPreferencesStore -import com.tangem.datasource.local.promo.PromoStoriesStore -import com.tangem.domain.promo.PromoRepository +import com.tangem.datasource.local.stories.StoriesStore +import com.tangem.domain.stories.StoriesRepository import com.tangem.utils.coroutines.CoroutineDispatcherProvider import dagger.Module import dagger.Provides @@ -14,17 +14,17 @@ import javax.inject.Singleton @Module @InstallIn(SingletonComponent::class) -internal object PromoDataModule { +internal object StoriesDataModule { @Provides @Singleton - fun providePromoRepository( + fun provideStoriesRepository( tangemTechApi: TangemTechApi, appPreferencesStore: AppPreferencesStore, - promoStoriesStore: PromoStoriesStore, + promoStoriesStore: StoriesStore, dispatchers: CoroutineDispatcherProvider, - ): PromoRepository { - return DefaultPromoRepository( + ): StoriesRepository { + return DefaultStoriesRepository( tangemApi = tangemTechApi, appPreferencesStore = appPreferencesStore, promoStoriesStore = promoStoriesStore, diff --git a/domain/markets/build.gradle.kts b/domain/markets/build.gradle.kts index c783650c9d..d5cb8318eb 100644 --- a/domain/markets/build.gradle.kts +++ b/domain/markets/build.gradle.kts @@ -24,7 +24,7 @@ dependencies { api(projects.domain.walletManager) api(projects.domain.wallets) api(projects.domain.wallets.models) - api(projects.domain.promo) + api(projects.domain.stories) implementation(projects.domain.tokens.models) implementation(projects.domain.tokens) diff --git a/domain/onramp/build.gradle.kts b/domain/onramp/build.gradle.kts index cd1f511092..967d3a4051 100644 --- a/domain/onramp/build.gradle.kts +++ b/domain/onramp/build.gradle.kts @@ -19,7 +19,7 @@ dependencies { api(projects.domain.core) api(projects.domain.settings) implementation(deps.kotlin.serialization) - implementation(projects.domain.promo) + implementation(projects.domain.stories) /** Tests */ testImplementation(deps.test.coroutine) diff --git a/domain/promo/src/main/java/com/tangem/domain/promo/ShouldShowStoriesUseCase.kt b/domain/promo/src/main/java/com/tangem/domain/promo/ShouldShowStoriesUseCase.kt deleted file mode 100644 index cc5357db2a..0000000000 --- a/domain/promo/src/main/java/com/tangem/domain/promo/ShouldShowStoriesUseCase.kt +++ /dev/null @@ -1,10 +0,0 @@ -package com.tangem.domain.promo - -import kotlinx.coroutines.flow.Flow - -class ShouldShowStoriesUseCase(private val promoRepository: PromoRepository) { - operator fun invoke(storyId: String): Flow = promoRepository.isReadyToShowStories(storyId) - suspend fun invokeSync(storyId: String): Boolean = promoRepository.isReadyToShowStoriesSync(storyId) - - suspend fun neverToShow(storyId: String) = promoRepository.setNeverToShowStories(storyId) -} \ No newline at end of file diff --git a/domain/promo/.gitignore b/domain/stories/.gitignore similarity index 100% rename from domain/promo/.gitignore rename to domain/stories/.gitignore diff --git a/domain/promo/build.gradle.kts b/domain/stories/build.gradle.kts similarity index 85% rename from domain/promo/build.gradle.kts rename to domain/stories/build.gradle.kts index 5ba67b0000..69825f04b6 100644 --- a/domain/promo/build.gradle.kts +++ b/domain/stories/build.gradle.kts @@ -5,7 +5,7 @@ plugins { dependencies { implementation(projects.domain.models) - implementation(projects.domain.promo.models) + implementation(projects.domain.stories.models) implementation(projects.domain.settings) implementation(projects.domain.wallets.models) diff --git a/domain/promo/detekt-baseline-main.xml b/domain/stories/detekt-baseline-main.xml similarity index 100% rename from domain/promo/detekt-baseline-main.xml rename to domain/stories/detekt-baseline-main.xml diff --git a/domain/promo/models/.gitignore b/domain/stories/models/.gitignore similarity index 100% rename from domain/promo/models/.gitignore rename to domain/stories/models/.gitignore diff --git a/domain/promo/models/build.gradle.kts b/domain/stories/models/build.gradle.kts similarity index 100% rename from domain/promo/models/build.gradle.kts rename to domain/stories/models/build.gradle.kts diff --git a/domain/promo/models/src/main/java/com/tangem/domain/promo/models/StoryContent.kt b/domain/stories/models/src/main/java/com/tangem/domain/stories/models/StoryContent.kt similarity index 93% rename from domain/promo/models/src/main/java/com/tangem/domain/promo/models/StoryContent.kt rename to domain/stories/models/src/main/java/com/tangem/domain/stories/models/StoryContent.kt index b351f18f9f..c6ed1ec662 100644 --- a/domain/promo/models/src/main/java/com/tangem/domain/promo/models/StoryContent.kt +++ b/domain/stories/models/src/main/java/com/tangem/domain/stories/models/StoryContent.kt @@ -1,4 +1,4 @@ -package com.tangem.domain.promo.models +package com.tangem.domain.stories.models data class StoryContent( val imageHost: String, diff --git a/domain/promo/src/main/java/com/tangem/domain/promo/GetStoryContentUseCase.kt b/domain/stories/src/main/java/com/tangem/domain/stories/GetStoryContentUseCase.kt similarity index 83% rename from domain/promo/src/main/java/com/tangem/domain/promo/GetStoryContentUseCase.kt rename to domain/stories/src/main/java/com/tangem/domain/stories/GetStoryContentUseCase.kt index c1f4686134..54709088ad 100644 --- a/domain/promo/src/main/java/com/tangem/domain/promo/GetStoryContentUseCase.kt +++ b/domain/stories/src/main/java/com/tangem/domain/stories/GetStoryContentUseCase.kt @@ -1,10 +1,10 @@ -package com.tangem.domain.promo +package com.tangem.domain.stories import arrow.core.Either import arrow.core.left import arrow.core.right -import com.tangem.domain.promo.models.StoryContent -import com.tangem.domain.promo.models.StoryContentIds +import com.tangem.domain.stories.models.StoryContent +import com.tangem.domain.stories.models.StoryContentIds import com.tangem.domain.settings.repositories.SettingsRepository import com.tangem.domain.settings.usercountry.models.needApplyFCARestrictions import kotlinx.coroutines.FlowPreview @@ -12,7 +12,7 @@ import kotlinx.coroutines.flow.* import kotlin.time.Duration.Companion.seconds class GetStoryContentUseCase( - private val promoRepository: PromoRepository, + private val storiesRepository: StoriesRepository, private val settingsRepository: SettingsRepository, ) { @@ -20,7 +20,7 @@ class GetStoryContentUseCase( return isFCAAllowed(id).transform { isAllowed -> if (isAllowed) { emitAll( - promoRepository.getStoryById(id) + storiesRepository.getStoryById(id) .map> { it.right() } .catch { emit(it.left()) } .onEmpty { emit(null.right()) }, @@ -34,7 +34,7 @@ class GetStoryContentUseCase( suspend fun invokeSync(id: String, refresh: Boolean = false): Either = Either.catch { val isFCAAllowed = isFCAAllowed(id).firstOrNull() ?: false return@catch if (isFCAAllowed) { - promoRepository.getStoryByIdSync(id, refresh) + storiesRepository.getStoryByIdSync(id, refresh) } else { null } diff --git a/domain/stories/src/main/java/com/tangem/domain/stories/ShouldShowStoriesUseCase.kt b/domain/stories/src/main/java/com/tangem/domain/stories/ShouldShowStoriesUseCase.kt new file mode 100644 index 0000000000..01c6546e0b --- /dev/null +++ b/domain/stories/src/main/java/com/tangem/domain/stories/ShouldShowStoriesUseCase.kt @@ -0,0 +1,10 @@ +package com.tangem.domain.stories + +import kotlinx.coroutines.flow.Flow + +class ShouldShowStoriesUseCase(private val storiesRepository: StoriesRepository) { + operator fun invoke(storyId: String): Flow = storiesRepository.isReadyToShowStories(storyId) + suspend fun invokeSync(storyId: String): Boolean = storiesRepository.isReadyToShowStoriesSync(storyId) + + suspend fun neverToShow(storyId: String) = storiesRepository.setNeverToShowStories(storyId) +} \ No newline at end of file diff --git a/domain/promo/src/main/java/com/tangem/domain/promo/PromoRepository.kt b/domain/stories/src/main/java/com/tangem/domain/stories/StoriesRepository.kt similarity index 77% rename from domain/promo/src/main/java/com/tangem/domain/promo/PromoRepository.kt rename to domain/stories/src/main/java/com/tangem/domain/stories/StoriesRepository.kt index ac8f22142e..f1942c5703 100644 --- a/domain/promo/src/main/java/com/tangem/domain/promo/PromoRepository.kt +++ b/domain/stories/src/main/java/com/tangem/domain/stories/StoriesRepository.kt @@ -1,9 +1,9 @@ -package com.tangem.domain.promo +package com.tangem.domain.stories -import com.tangem.domain.promo.models.StoryContent +import com.tangem.domain.stories.models.StoryContent import kotlinx.coroutines.flow.Flow -interface PromoRepository { +interface StoriesRepository { // region Stories fun getStoryById(id: String): Flow diff --git a/domain/tokens/build.gradle.kts b/domain/tokens/build.gradle.kts index 5fc40e8cea..4a8a7ade16 100644 --- a/domain/tokens/build.gradle.kts +++ b/domain/tokens/build.gradle.kts @@ -34,8 +34,8 @@ dependencies { implementation(projects.domain.settings) implementation(projects.features.swap.domain.api) implementation(projects.features.swap.domain.models) - implementation(projects.domain.promo.models) - implementation(projects.domain.promo) + implementation(projects.domain.stories.models) + implementation(projects.domain.stories) implementation(projects.domain.networks) implementation(projects.domain.quotes) implementation(projects.domain.yieldSupply.models) diff --git a/domain/tokens/models/build.gradle.kts b/domain/tokens/models/build.gradle.kts index f618dc0f3f..c5a41e9c65 100644 --- a/domain/tokens/models/build.gradle.kts +++ b/domain/tokens/models/build.gradle.kts @@ -12,7 +12,7 @@ dependencies { implementation(projects.domain.models) implementation(projects.domain.txhistory.models) implementation(projects.domain.staking.models) - implementation(projects.domain.promo.models) + implementation(projects.domain.stories.models) /** Other dependencies */ implementation(deps.kotlin.serialization) diff --git a/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/GetCryptoCurrencyActionsUseCase.kt b/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/GetCryptoCurrencyActionsUseCase.kt index 670d069a89..1a8ffce089 100644 --- a/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/GetCryptoCurrencyActionsUseCase.kt +++ b/domain/tokens/src/main/kotlin/com/tangem/domain/tokens/GetCryptoCurrencyActionsUseCase.kt @@ -6,9 +6,9 @@ import com.tangem.domain.models.currency.CryptoCurrency import com.tangem.domain.models.currency.CryptoCurrencyStatus import com.tangem.domain.models.wallet.UserWallet import com.tangem.domain.models.wallet.UserWalletId -import com.tangem.domain.promo.PromoRepository -import com.tangem.domain.promo.models.StoryContent -import com.tangem.domain.promo.models.StoryContentIds +import com.tangem.domain.stories.StoriesRepository +import com.tangem.domain.stories.models.StoryContent +import com.tangem.domain.stories.models.StoryContentIds import com.tangem.domain.staking.model.StakingAvailability import com.tangem.domain.staking.repositories.StakingRepository import com.tangem.domain.tokens.actions.CommonActionsFactory @@ -28,14 +28,14 @@ import kotlinx.coroutines.flow.* * @param rampManager the manager for handling ramp state operations * @param walletManagersFacade the facade for managing wallet operations * @property stakingRepository the repository for staking-related data - * @property promoRepository the repository for promotional content + * @property storiesRepository the repository for stories content * @property dispatchers the coroutine dispatcher provider for managing concurrency */ class GetCryptoCurrencyActionsUseCase( rampManager: RampStateManager, walletManagersFacade: WalletManagersFacade, private val stakingRepository: StakingRepository, - private val promoRepository: PromoRepository, + private val storiesRepository: StoriesRepository, private val dispatchers: CoroutineDispatcherProvider, ) { @@ -127,7 +127,7 @@ class GetCryptoCurrencyActionsUseCase( } private fun getSwapStoryContent(): Flow { - return promoRepository.getStoryById(StoryContentIds.STORY_FIRST_TIME_SWAP.id) + return storiesRepository.getStoryById(StoryContentIds.STORY_FIRST_TIME_SWAP.id) .conflate() .distinctUntilChanged() } diff --git a/features/stories/impl/build.gradle.kts b/features/stories/impl/build.gradle.kts index bb49f8b167..cd7dab2dbe 100644 --- a/features/stories/impl/build.gradle.kts +++ b/features/stories/impl/build.gradle.kts @@ -14,8 +14,8 @@ dependencies { /** Feature modules */ implementation(projects.features.stories.api) /** Domain modules */ - implementation(projects.domain.promo) - implementation(projects.domain.promo.models) + implementation(projects.domain.stories) + implementation(projects.domain.stories.models) /** Project - Common */ implementation(projects.common.routing) diff --git a/features/stories/impl/src/main/java/com/tangem/feature/stories/impl/StoriesSlideConfigs.kt b/features/stories/impl/src/main/java/com/tangem/feature/stories/impl/StoriesSlideConfigs.kt index 0c7bf8ca39..44bddacf3d 100644 --- a/features/stories/impl/src/main/java/com/tangem/feature/stories/impl/StoriesSlideConfigs.kt +++ b/features/stories/impl/src/main/java/com/tangem/feature/stories/impl/StoriesSlideConfigs.kt @@ -1,6 +1,6 @@ package com.tangem.feature.stories.impl -import com.tangem.domain.promo.models.StoryContentIds +import com.tangem.domain.stories.models.StoryContentIds import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.persistentListOf diff --git a/features/stories/impl/src/main/java/com/tangem/feature/stories/impl/model/StoriesModel.kt b/features/stories/impl/src/main/java/com/tangem/feature/stories/impl/model/StoriesModel.kt index 35c985a28a..14482bc8fa 100644 --- a/features/stories/impl/src/main/java/com/tangem/feature/stories/impl/model/StoriesModel.kt +++ b/features/stories/impl/src/main/java/com/tangem/feature/stories/impl/model/StoriesModel.kt @@ -5,8 +5,8 @@ import com.tangem.core.decompose.model.Model import com.tangem.core.decompose.model.ParamsContainer import com.tangem.core.decompose.navigation.Router import com.tangem.core.ui.extensions.resourceReference -import com.tangem.domain.promo.GetStoryContentUseCase -import com.tangem.domain.promo.ShouldShowStoriesUseCase +import com.tangem.domain.stories.GetStoryContentUseCase +import com.tangem.domain.stories.ShouldShowStoriesUseCase import com.tangem.feature.stories.api.StoriesComponent import com.tangem.feature.stories.api.StoriesUM import com.tangem.feature.stories.impl.StoriesSlideConfigs diff --git a/features/swap/impl/build.gradle.kts b/features/swap/impl/build.gradle.kts index f2ab5ca458..1ca8bb6b4a 100644 --- a/features/swap/impl/build.gradle.kts +++ b/features/swap/impl/build.gradle.kts @@ -54,8 +54,8 @@ dependencies { implementation(projects.domain.staking) implementation(projects.domain.feedback) implementation(projects.domain.feedback.models) - implementation(projects.domain.promo) - implementation(projects.domain.promo.models) + implementation(projects.domain.stories) + implementation(projects.domain.stories.models) implementation(projects.domain.txhistory) implementation(projects.domain.txhistory.models) implementation(projects.domain.express.models) diff --git a/features/swap/impl/src/main/java/com/tangem/feature/swap/model/SwapModel.kt b/features/swap/impl/src/main/java/com/tangem/feature/swap/model/SwapModel.kt index d8f79e8f0d..627188e09c 100644 --- a/features/swap/impl/src/main/java/com/tangem/feature/swap/model/SwapModel.kt +++ b/features/swap/impl/src/main/java/com/tangem/feature/swap/model/SwapModel.kt @@ -54,8 +54,8 @@ import com.tangem.domain.models.network.Network import com.tangem.domain.models.wallet.UserWalletId import com.tangem.domain.pay.WithdrawalResult import com.tangem.domain.pay.usecase.GetPaymentAccountCryptoCurrencyStatusUseCase -import com.tangem.domain.promo.ShouldShowStoriesUseCase -import com.tangem.domain.promo.models.StoryContentIds +import com.tangem.domain.stories.ShouldShowStoriesUseCase +import com.tangem.domain.stories.models.StoryContentIds import com.tangem.domain.settings.usercountry.GetUserCountryUseCase import com.tangem.domain.settings.usercountry.models.UserCountry import com.tangem.domain.settings.usercountry.models.needApplyFCARestrictions diff --git a/features/tokendetails/impl/build.gradle.kts b/features/tokendetails/impl/build.gradle.kts index d538fa28d5..ecdf0aab3c 100644 --- a/features/tokendetails/impl/build.gradle.kts +++ b/features/tokendetails/impl/build.gradle.kts @@ -78,8 +78,8 @@ dependencies { implementation(projects.domain.offramp) implementation(projects.domain.onramp) implementation(projects.domain.onramp.models) - implementation(projects.domain.promo) - implementation(projects.domain.promo.models) + implementation(projects.domain.stories) + implementation(projects.domain.stories.models) implementation(projects.domain.quotes) implementation(projects.domain.settings) implementation(projects.domain.staking) diff --git a/features/wallet/impl/build.gradle.kts b/features/wallet/impl/build.gradle.kts index 0f05b2b6c7..9aad1ef665 100644 --- a/features/wallet/impl/build.gradle.kts +++ b/features/wallet/impl/build.gradle.kts @@ -105,8 +105,8 @@ dependencies { implementation(projects.domain.offramp) implementation(projects.domain.onramp) implementation(projects.domain.onramp.models) - implementation(projects.domain.promo) - implementation(projects.domain.promo.models) + implementation(projects.domain.stories) + implementation(projects.domain.stories.models) implementation(projects.domain.quotes) implementation(projects.domain.settings) implementation(projects.domain.staking) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/intents/WalletCurrencyActionsClickIntents.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/intents/WalletCurrencyActionsClickIntents.kt index 9923f6ffa4..249ce10de3 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/intents/WalletCurrencyActionsClickIntents.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/child/wallet/model/intents/WalletCurrencyActionsClickIntents.kt @@ -41,8 +41,8 @@ import com.tangem.domain.models.wallet.UserWallet import com.tangem.domain.models.wallet.UserWalletId import com.tangem.domain.offramp.GetOfframpUrlUseCase import com.tangem.domain.onramp.model.OnrampSource -import com.tangem.domain.promo.GetStoryContentUseCase -import com.tangem.domain.promo.models.StoryContentIds +import com.tangem.domain.stories.GetStoryContentUseCase +import com.tangem.domain.stories.models.StoryContentIds import com.tangem.domain.staking.model.StakingOption import com.tangem.domain.tokens.NeedShowYieldSupplyDepositedWarningUseCase import com.tangem.domain.tokens.SaveViewedTokenReceiveWarningUseCase diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/subscribers/MultiWalletActionButtonsSubscriber.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/subscribers/MultiWalletActionButtonsSubscriber.kt index 8ef8a70601..21df11a892 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/subscribers/MultiWalletActionButtonsSubscriber.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/presentation/wallet/subscribers/MultiWalletActionButtonsSubscriber.kt @@ -1,8 +1,8 @@ package com.tangem.feature.wallet.presentation.wallet.subscribers import com.tangem.domain.models.wallet.UserWallet -import com.tangem.domain.promo.GetStoryContentUseCase -import com.tangem.domain.promo.models.StoryContentIds +import com.tangem.domain.stories.GetStoryContentUseCase +import com.tangem.domain.stories.models.StoryContentIds import com.tangem.feature.wallet.presentation.wallet.state.WalletStateController import com.tangem.feature.wallet.presentation.wallet.state.transformers.UpdateMultiWalletActionButtonBadgeTransformer import dagger.assisted.Assisted diff --git a/settings.gradle.kts b/settings.gradle.kts index 1938b7587c..1a2ca11f1d 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -379,8 +379,8 @@ include(":domain:manage-tokens:models") include(":domain:onramp") include(":domain:onramp:models") include(":domain:offramp") -include(":domain:promo") -include(":domain:promo:models") +include(":domain:stories") +include(":domain:stories:models") include(":domain:nft") include(":domain:nft:models") include(":domain:hot-wallet") @@ -421,7 +421,7 @@ include(":data:transaction") include(":data:visa") include(":data:payment") include(":data:virtual-account") -include(":data:promo") +include(":data:stories") include(":data:onboarding") include(":data:dynamic-addresses") include(":data:feedback")