From c6e06b1eb9829466fa1f25f5414554994c59d7fe Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 30 Oct 2024 15:07:29 +0400 Subject: [PATCH] Updated on 2026-08-14 --- app/build.gradle.kts | 2 +- .../com/tangem/tap/ApplicationEntryPoint.kt | 4 ++-- .../java/com/tangem/tap/TangemApplication.kt | 4 ++-- .../tap/di/domain/CardLegacyDomainModule.kt | 2 +- .../scanCard/CardScanningFeatureToggles.kt | 2 +- .../di/WalletConnectInteractorModule.kt | 2 +- .../toggles/WalletConnectFeatureToggles.kt | 2 +- .../home/featuretoggles/HomeFeatureToggles.kt | 2 +- core/{toggles => config-toggles}/.gitignore | 0 .../build.gradle.kts | 2 +- .../configs/excluded_blockchains_config.json | 0 .../blockchain/ExcludedBlockchainsManager.kt | 2 +- .../MutableExcludedBlockchainsManager.kt | 2 +- .../impl/DefaultExcludedBlockchainsManager.kt | 19 ++++++++++--------- .../di/ExcludedBlockchainsManagerModule.kt | 14 +++++++------- .../di/FeatureTogglesManagerModule.kt | 14 +++++++------- .../feature/FeatureTogglesManager.kt | 2 +- .../feature/MutableFeatureTogglesManager.kt | 2 +- .../feature/impl/DevFeatureTogglesManager.kt | 10 +++++----- .../feature/impl/FeatureTogglesConstants.kt | 2 +- .../feature/impl/ProdFeatureTogglesManager.kt | 10 +++++----- .../configtoggle/storage/ConfigToggle.kt} | 6 +++--- .../storage/LocalTogglesStorage.kt | 6 +++--- .../configtoggle}/storage/TogglesStorage.kt | 4 ++-- .../core/configtoggle/utils/CollectionExt.kt | 13 +++++++++++++ .../version/DefaultVersionProvider.kt | 2 +- .../core/configtoggle}/version/Version.kt | 2 +- .../version/VersionAvailabilityContract.kt | 2 +- .../configtoggle}/version/VersionProvider.kt | 2 +- .../VersionAvailabilityContractTest.kt | 4 ++-- .../configtoggle}/contract/VersionTest.kt | 4 ++-- .../manager/DevTogglesManagerTest.kt | 18 +++++++++--------- .../manager/ProdTogglesManagerTest.kt | 18 +++++++++--------- .../storage/LocalTogglesStorageTest.kt | 18 +++++++++--------- .../local/preferences/PreferencesKeys.kt | 2 +- .../utils/AppPreferencesStoreExt.kt | 6 ------ .../tangem/core/toggle/utils/CollectionExt.kt | 13 ------------- features/details/impl/build.gradle.kts | 2 +- features/disclaimer/impl/build.gradle.kts | 2 +- features/manage-tokens/impl/build.gradle.kts | 2 +- features/markets/impl/build.gradle.kts | 2 +- features/onboarding-v2/impl/build.gradle.kts | 2 +- .../v2/DefaultOnboardingV2FeatureToggles.kt | 2 +- features/onboarding/build.gradle.kts | 2 +- features/onramp/impl/build.gradle.kts | 2 +- .../onramp/DefaultOnrampFeatureToggles.kt | 2 +- .../features/onramp/OnrampFeatureModule.kt | 4 +--- .../push-notifications/impl/build.gradle.kts | 2 +- features/send/impl/build.gradle.kts | 2 +- features/staking/impl/build.gradle.kts | 2 +- features/swap/presentation/build.gradle.kts | 2 +- features/tester/impl/build.gradle.kts | 2 +- .../viewmodels/FeatureTogglesViewModel.kt | 4 ++-- features/tokendetails/impl/build.gradle.kts | 2 +- .../wallet-settings/impl/build.gradle.kts | 2 +- features/wallet/impl/build.gradle.kts | 2 +- .../DefaultWalletFeatureToggles.kt | 2 +- libs/blockchain-sdk/build.gradle.kts | 2 +- .../di/BlockchainSDKFactoryModule.kt | 2 +- .../DefaultBlockchainSDKFeatureToggles.kt | 2 +- settings.gradle.kts | 2 +- 61 files changed, 132 insertions(+), 139 deletions(-) rename core/{toggles => config-toggles}/.gitignore (100%) rename core/{toggles => config-toggles}/build.gradle.kts (94%) rename core/{toggles => config-toggles}/src/main/assets/configs/excluded_blockchains_config.json (100%) rename core/{toggles/src/main/kotlin/com/tangem/core/toggle => config-toggles/src/main/kotlin/com/tangem/core/configtoggle}/blockchain/ExcludedBlockchainsManager.kt (69%) rename core/{toggles/src/main/kotlin/com/tangem/core/toggle => config-toggles/src/main/kotlin/com/tangem/core/configtoggle}/blockchain/MutableExcludedBlockchainsManager.kt (82%) rename core/{toggles/src/main/kotlin/com/tangem/core/toggle => config-toggles/src/main/kotlin/com/tangem/core/configtoggle}/blockchain/impl/DefaultExcludedBlockchainsManager.kt (79%) rename core/{toggles/src/main/kotlin/com/tangem/core/toggle => config-toggles/src/main/kotlin/com/tangem/core/configtoggle}/di/ExcludedBlockchainsManagerModule.kt (73%) rename core/{toggles/src/main/kotlin/com/tangem/core/toggle => config-toggles/src/main/kotlin/com/tangem/core/configtoggle}/di/FeatureTogglesManagerModule.kt (74%) rename core/{toggles/src/main/kotlin/com/tangem/core/toggle => config-toggles/src/main/kotlin/com/tangem/core/configtoggle}/feature/FeatureTogglesManager.kt (87%) rename core/{toggles/src/main/kotlin/com/tangem/core/toggle => config-toggles/src/main/kotlin/com/tangem/core/configtoggle}/feature/MutableFeatureTogglesManager.kt (93%) rename core/{toggles/src/main/kotlin/com/tangem/core/toggle => config-toggles/src/main/kotlin/com/tangem/core/configtoggle}/feature/impl/DevFeatureTogglesManager.kt (90%) rename core/{toggles/src/main/kotlin/com/tangem/core/toggle => config-toggles/src/main/kotlin/com/tangem/core/configtoggle}/feature/impl/FeatureTogglesConstants.kt (70%) rename core/{toggles/src/main/kotlin/com/tangem/core/toggle => config-toggles/src/main/kotlin/com/tangem/core/configtoggle}/feature/impl/ProdFeatureTogglesManager.kt (79%) rename core/{toggles/src/main/kotlin/com/tangem/core/toggle/storage/Toggle.kt => config-toggles/src/main/kotlin/com/tangem/core/configtoggle/storage/ConfigToggle.kt} (73%) rename core/{toggles/src/main/kotlin/com/tangem/core/toggle => config-toggles/src/main/kotlin/com/tangem/core/configtoggle}/storage/LocalTogglesStorage.kt (72%) rename core/{toggles/src/main/kotlin/com/tangem/core/toggle => config-toggles/src/main/kotlin/com/tangem/core/configtoggle}/storage/TogglesStorage.kt (75%) create mode 100644 core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/utils/CollectionExt.kt rename core/{toggles/src/main/kotlin/com/tangem/core/toggle => config-toggles/src/main/kotlin/com/tangem/core/configtoggle}/version/DefaultVersionProvider.kt (96%) rename core/{toggles/src/main/kotlin/com/tangem/core/toggle => config-toggles/src/main/kotlin/com/tangem/core/configtoggle}/version/Version.kt (98%) rename core/{toggles/src/main/kotlin/com/tangem/core/toggle => config-toggles/src/main/kotlin/com/tangem/core/configtoggle}/version/VersionAvailabilityContract.kt (93%) rename core/{toggles/src/main/kotlin/com/tangem/core/toggle => config-toggles/src/main/kotlin/com/tangem/core/configtoggle}/version/VersionProvider.kt (74%) rename core/{toggles/src/test/kotlin/com/tangem/core/toggle => config-toggles/src/test/kotlin/com/tangem/core/configtoggle}/contract/VersionAvailabilityContractTest.kt (93%) rename core/{toggles/src/test/kotlin/com/tangem/core/toggle => config-toggles/src/test/kotlin/com/tangem/core/configtoggle}/contract/VersionTest.kt (97%) rename core/{toggles/src/test/kotlin/com/tangem/core/toggle => config-toggles/src/test/kotlin/com/tangem/core/configtoggle}/manager/DevTogglesManagerTest.kt (92%) rename core/{toggles/src/test/kotlin/com/tangem/core/toggle => config-toggles/src/test/kotlin/com/tangem/core/configtoggle}/manager/ProdTogglesManagerTest.kt (88%) rename core/{toggles/src/test/kotlin/com/tangem/core/toggle => config-toggles/src/test/kotlin/com/tangem/core/configtoggle}/storage/LocalTogglesStorageTest.kt (85%) delete mode 100644 core/toggles/src/main/kotlin/com/tangem/core/toggle/utils/CollectionExt.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index dd0208cf7f..e6d30a7cc6 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -81,7 +81,7 @@ dependencies { implementation(projects.core.analytics) implementation(projects.core.analytics.models) implementation(projects.core.navigation) - implementation(projects.core.toggles) + implementation(projects.core.configToggles) implementation(projects.core.res) implementation(projects.core.ui) implementation(projects.core.datasource) diff --git a/app/src/main/java/com/tangem/tap/ApplicationEntryPoint.kt b/app/src/main/java/com/tangem/tap/ApplicationEntryPoint.kt index ff04434dfa..81b845f7bc 100644 --- a/app/src/main/java/com/tangem/tap/ApplicationEntryPoint.kt +++ b/app/src/main/java/com/tangem/tap/ApplicationEntryPoint.kt @@ -5,10 +5,10 @@ import com.tangem.blockchainsdk.BlockchainSDKFactory import com.tangem.blockchainsdk.signer.TransactionSignerFactory import com.tangem.common.routing.AppRouter import com.tangem.core.analytics.filter.OneTimeEventFilter +import com.tangem.core.configtoggle.blockchain.ExcludedBlockchainsManager +import com.tangem.core.configtoggle.feature.FeatureTogglesManager import com.tangem.core.navigation.share.ShareManager import com.tangem.core.navigation.url.UrlOpener -import com.tangem.core.toggle.blockchain.ExcludedBlockchainsManager -import com.tangem.core.toggle.feature.FeatureTogglesManager import com.tangem.datasource.connection.NetworkConnectionManager import com.tangem.datasource.local.config.environment.EnvironmentConfigStorage import com.tangem.datasource.local.config.issuers.IssuersConfigStorage diff --git a/app/src/main/java/com/tangem/tap/TangemApplication.kt b/app/src/main/java/com/tangem/tap/TangemApplication.kt index 287f99d263..18d3e87bd8 100644 --- a/app/src/main/java/com/tangem/tap/TangemApplication.kt +++ b/app/src/main/java/com/tangem/tap/TangemApplication.kt @@ -17,8 +17,8 @@ import com.tangem.core.analytics.models.AnalyticsEvent import com.tangem.core.analytics.models.AnalyticsParam import com.tangem.core.analytics.models.Basic import com.tangem.core.analytics.models.Basic.TransactionSent.WalletForm -import com.tangem.core.toggle.blockchain.ExcludedBlockchainsManager -import com.tangem.core.toggle.feature.FeatureTogglesManager +import com.tangem.core.configtoggle.blockchain.ExcludedBlockchainsManager +import com.tangem.core.configtoggle.feature.FeatureTogglesManager import com.tangem.datasource.api.common.MoshiConverter import com.tangem.datasource.api.common.createNetworkLoggingInterceptor import com.tangem.datasource.connection.NetworkConnectionManager diff --git a/app/src/main/java/com/tangem/tap/di/domain/CardLegacyDomainModule.kt b/app/src/main/java/com/tangem/tap/di/domain/CardLegacyDomainModule.kt index 77ff3a6bee..38adc6ec9e 100644 --- a/app/src/main/java/com/tangem/tap/di/domain/CardLegacyDomainModule.kt +++ b/app/src/main/java/com/tangem/tap/di/domain/CardLegacyDomainModule.kt @@ -1,6 +1,6 @@ package com.tangem.tap.di.domain -import com.tangem.core.toggle.feature.FeatureTogglesManager +import com.tangem.core.configtoggle.feature.FeatureTogglesManager import com.tangem.domain.card.ScanCardProcessor import com.tangem.domain.wallets.legacy.UserWalletsListManager import com.tangem.domain.wallets.usecase.GenerateWalletNameUseCase diff --git a/app/src/main/java/com/tangem/tap/domain/scanCard/CardScanningFeatureToggles.kt b/app/src/main/java/com/tangem/tap/domain/scanCard/CardScanningFeatureToggles.kt index 1c989ca3db..59310f93b5 100644 --- a/app/src/main/java/com/tangem/tap/domain/scanCard/CardScanningFeatureToggles.kt +++ b/app/src/main/java/com/tangem/tap/domain/scanCard/CardScanningFeatureToggles.kt @@ -1,6 +1,6 @@ package com.tangem.tap.domain.scanCard -import com.tangem.core.toggle.feature.FeatureTogglesManager +import com.tangem.core.configtoggle.feature.FeatureTogglesManager /** * Add custom token feature toggles diff --git a/app/src/main/java/com/tangem/tap/domain/walletconnect2/di/WalletConnectInteractorModule.kt b/app/src/main/java/com/tangem/tap/domain/walletconnect2/di/WalletConnectInteractorModule.kt index 65faebf4db..9b7a44b10d 100644 --- a/app/src/main/java/com/tangem/tap/domain/walletconnect2/di/WalletConnectInteractorModule.kt +++ b/app/src/main/java/com/tangem/tap/domain/walletconnect2/di/WalletConnectInteractorModule.kt @@ -3,7 +3,7 @@ package com.tangem.tap.domain.walletconnect2.di import android.app.Application import com.squareup.moshi.Moshi import com.tangem.core.analytics.api.AnalyticsEventHandler -import com.tangem.core.toggle.feature.FeatureTogglesManager +import com.tangem.core.configtoggle.feature.FeatureTogglesManager import com.tangem.datasource.di.SdkMoshi import com.tangem.datasource.files.FileReader import com.tangem.domain.tokens.repository.CurrenciesRepository diff --git a/app/src/main/java/com/tangem/tap/domain/walletconnect2/toggles/WalletConnectFeatureToggles.kt b/app/src/main/java/com/tangem/tap/domain/walletconnect2/toggles/WalletConnectFeatureToggles.kt index e9f55f3815..a6da04800a 100644 --- a/app/src/main/java/com/tangem/tap/domain/walletconnect2/toggles/WalletConnectFeatureToggles.kt +++ b/app/src/main/java/com/tangem/tap/domain/walletconnect2/toggles/WalletConnectFeatureToggles.kt @@ -1,6 +1,6 @@ package com.tangem.tap.domain.walletconnect2.toggles -import com.tangem.core.toggle.feature.FeatureTogglesManager +import com.tangem.core.configtoggle.feature.FeatureTogglesManager internal class WalletConnectFeatureToggles( private val featureTogglesManager: FeatureTogglesManager, diff --git a/app/src/main/java/com/tangem/tap/features/home/featuretoggles/HomeFeatureToggles.kt b/app/src/main/java/com/tangem/tap/features/home/featuretoggles/HomeFeatureToggles.kt index ebbb05500b..55ebe3e10d 100644 --- a/app/src/main/java/com/tangem/tap/features/home/featuretoggles/HomeFeatureToggles.kt +++ b/app/src/main/java/com/tangem/tap/features/home/featuretoggles/HomeFeatureToggles.kt @@ -1,6 +1,6 @@ package com.tangem.tap.features.home.featuretoggles -import com.tangem.core.toggle.feature.FeatureTogglesManager +import com.tangem.core.configtoggle.feature.FeatureTogglesManager import javax.inject.Inject class HomeFeatureToggles @Inject constructor( diff --git a/core/toggles/.gitignore b/core/config-toggles/.gitignore similarity index 100% rename from core/toggles/.gitignore rename to core/config-toggles/.gitignore diff --git a/core/toggles/build.gradle.kts b/core/config-toggles/build.gradle.kts similarity index 94% rename from core/toggles/build.gradle.kts rename to core/config-toggles/build.gradle.kts index e56b5955fe..0a7bc83fdc 100644 --- a/core/toggles/build.gradle.kts +++ b/core/config-toggles/build.gradle.kts @@ -7,7 +7,7 @@ plugins { } android { - namespace = "com.tangem.core.toggles" + namespace = "com.tangem.core.configtoggle" } dependencies { diff --git a/core/toggles/src/main/assets/configs/excluded_blockchains_config.json b/core/config-toggles/src/main/assets/configs/excluded_blockchains_config.json similarity index 100% rename from core/toggles/src/main/assets/configs/excluded_blockchains_config.json rename to core/config-toggles/src/main/assets/configs/excluded_blockchains_config.json diff --git a/core/toggles/src/main/kotlin/com/tangem/core/toggle/blockchain/ExcludedBlockchainsManager.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/blockchain/ExcludedBlockchainsManager.kt similarity index 69% rename from core/toggles/src/main/kotlin/com/tangem/core/toggle/blockchain/ExcludedBlockchainsManager.kt rename to core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/blockchain/ExcludedBlockchainsManager.kt index fd6c3a91ae..f5db3637b9 100644 --- a/core/toggles/src/main/kotlin/com/tangem/core/toggle/blockchain/ExcludedBlockchainsManager.kt +++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/blockchain/ExcludedBlockchainsManager.kt @@ -1,4 +1,4 @@ -package com.tangem.core.toggle.blockchain +package com.tangem.core.configtoggle.blockchain interface ExcludedBlockchainsManager { diff --git a/core/toggles/src/main/kotlin/com/tangem/core/toggle/blockchain/MutableExcludedBlockchainsManager.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/blockchain/MutableExcludedBlockchainsManager.kt similarity index 82% rename from core/toggles/src/main/kotlin/com/tangem/core/toggle/blockchain/MutableExcludedBlockchainsManager.kt rename to core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/blockchain/MutableExcludedBlockchainsManager.kt index 7e2f28e33e..1f7fcf4dc0 100644 --- a/core/toggles/src/main/kotlin/com/tangem/core/toggle/blockchain/MutableExcludedBlockchainsManager.kt +++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/blockchain/MutableExcludedBlockchainsManager.kt @@ -1,4 +1,4 @@ -package com.tangem.core.toggle.blockchain +package com.tangem.core.configtoggle.blockchain interface MutableExcludedBlockchainsManager : ExcludedBlockchainsManager { diff --git a/core/toggles/src/main/kotlin/com/tangem/core/toggle/blockchain/impl/DefaultExcludedBlockchainsManager.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/blockchain/impl/DefaultExcludedBlockchainsManager.kt similarity index 79% rename from core/toggles/src/main/kotlin/com/tangem/core/toggle/blockchain/impl/DefaultExcludedBlockchainsManager.kt rename to core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/blockchain/impl/DefaultExcludedBlockchainsManager.kt index 1f1469773b..d0f1dccc44 100644 --- a/core/toggles/src/main/kotlin/com/tangem/core/toggle/blockchain/impl/DefaultExcludedBlockchainsManager.kt +++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/blockchain/impl/DefaultExcludedBlockchainsManager.kt @@ -1,13 +1,13 @@ -package com.tangem.core.toggle.blockchain.impl +package com.tangem.core.configtoggle.blockchain.impl -import com.tangem.core.toggle.blockchain.MutableExcludedBlockchainsManager -import com.tangem.core.toggle.storage.TogglesStorage -import com.tangem.core.toggle.utils.associateToggles -import com.tangem.core.toggle.version.VersionProvider +import com.tangem.core.configtoggle.blockchain.MutableExcludedBlockchainsManager +import com.tangem.core.configtoggle.storage.TogglesStorage +import com.tangem.core.configtoggle.utils.associateToggles +import com.tangem.core.configtoggle.version.VersionProvider import com.tangem.datasource.local.preferences.AppPreferencesStore import com.tangem.datasource.local.preferences.PreferencesKeys -import com.tangem.datasource.local.preferences.utils.getObjectSetSync -import com.tangem.datasource.local.preferences.utils.storeObjectSet +import com.tangem.datasource.local.preferences.utils.getSyncOrDefault +import com.tangem.datasource.local.preferences.utils.store internal class DefaultExcludedBlockchainsManager( private val localTogglesStorage: TogglesStorage, @@ -30,8 +30,9 @@ internal class DefaultExcludedBlockchainsManager( override suspend fun init() { localTogglesStorage.populate(path = "configs/excluded_blockchains_config") - val storedExcludedBlockchainsIds = appPreferencesStore.getObjectSetSync( + val storedExcludedBlockchainsIds = appPreferencesStore.getSyncOrDefault( key = PreferencesKeys.EXCLUDED_BLOCKCHAINS_KEY, + default = emptySet(), ) localExcludedBlockchainsIds = localTogglesStorage.toggles @@ -65,7 +66,7 @@ internal class DefaultExcludedBlockchainsManager( } private suspend fun storeCurrent() { - appPreferencesStore.storeObjectSet( + appPreferencesStore.store( PreferencesKeys.EXCLUDED_BLOCKCHAINS_KEY, currentExcludedBlockchainsIds, ) diff --git a/core/toggles/src/main/kotlin/com/tangem/core/toggle/di/ExcludedBlockchainsManagerModule.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/di/ExcludedBlockchainsManagerModule.kt similarity index 73% rename from core/toggles/src/main/kotlin/com/tangem/core/toggle/di/ExcludedBlockchainsManagerModule.kt rename to core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/di/ExcludedBlockchainsManagerModule.kt index 7d8c5f5973..2e4fcddac5 100644 --- a/core/toggles/src/main/kotlin/com/tangem/core/toggle/di/ExcludedBlockchainsManagerModule.kt +++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/di/ExcludedBlockchainsManagerModule.kt @@ -1,12 +1,12 @@ -package com.tangem.core.toggle.di +package com.tangem.core.configtoggle.di import android.content.Context -import com.tangem.core.toggle.blockchain.ExcludedBlockchainsManager -import com.tangem.core.toggle.blockchain.MutableExcludedBlockchainsManager -import com.tangem.core.toggle.blockchain.impl.DefaultExcludedBlockchainsManager -import com.tangem.core.toggle.storage.LocalTogglesStorage -import com.tangem.core.toggle.version.DefaultVersionProvider -import com.tangem.core.toggles.BuildConfig +import com.tangem.core.configtoggle.BuildConfig +import com.tangem.core.configtoggle.blockchain.ExcludedBlockchainsManager +import com.tangem.core.configtoggle.blockchain.MutableExcludedBlockchainsManager +import com.tangem.core.configtoggle.blockchain.impl.DefaultExcludedBlockchainsManager +import com.tangem.core.configtoggle.storage.LocalTogglesStorage +import com.tangem.core.configtoggle.version.DefaultVersionProvider import com.tangem.datasource.asset.loader.AssetLoader import com.tangem.datasource.local.preferences.AppPreferencesStore import dagger.Module diff --git a/core/toggles/src/main/kotlin/com/tangem/core/toggle/di/FeatureTogglesManagerModule.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/di/FeatureTogglesManagerModule.kt similarity index 74% rename from core/toggles/src/main/kotlin/com/tangem/core/toggle/di/FeatureTogglesManagerModule.kt rename to core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/di/FeatureTogglesManagerModule.kt index 0f740243f0..8346378b52 100644 --- a/core/toggles/src/main/kotlin/com/tangem/core/toggle/di/FeatureTogglesManagerModule.kt +++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/di/FeatureTogglesManagerModule.kt @@ -1,12 +1,12 @@ -package com.tangem.core.toggle.di +package com.tangem.core.configtoggle.di import android.content.Context -import com.tangem.core.toggle.feature.FeatureTogglesManager -import com.tangem.core.toggle.feature.impl.DevFeatureTogglesManager -import com.tangem.core.toggle.feature.impl.ProdFeatureTogglesManager -import com.tangem.core.toggle.storage.LocalTogglesStorage -import com.tangem.core.toggle.version.DefaultVersionProvider -import com.tangem.core.toggles.BuildConfig +import com.tangem.core.configtoggle.BuildConfig +import com.tangem.core.configtoggle.feature.FeatureTogglesManager +import com.tangem.core.configtoggle.feature.impl.DevFeatureTogglesManager +import com.tangem.core.configtoggle.feature.impl.ProdFeatureTogglesManager +import com.tangem.core.configtoggle.storage.LocalTogglesStorage +import com.tangem.core.configtoggle.version.DefaultVersionProvider import com.tangem.datasource.asset.loader.AssetLoader import com.tangem.datasource.local.preferences.AppPreferencesStore import dagger.Module diff --git a/core/toggles/src/main/kotlin/com/tangem/core/toggle/feature/FeatureTogglesManager.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/feature/FeatureTogglesManager.kt similarity index 87% rename from core/toggles/src/main/kotlin/com/tangem/core/toggle/feature/FeatureTogglesManager.kt rename to core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/feature/FeatureTogglesManager.kt index 1de1ff39ee..86a027924c 100644 --- a/core/toggles/src/main/kotlin/com/tangem/core/toggle/feature/FeatureTogglesManager.kt +++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/feature/FeatureTogglesManager.kt @@ -1,4 +1,4 @@ -package com.tangem.core.toggle.feature +package com.tangem.core.configtoggle.feature /** * Component for getting information about the availability of feature toggles diff --git a/core/toggles/src/main/kotlin/com/tangem/core/toggle/feature/MutableFeatureTogglesManager.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/feature/MutableFeatureTogglesManager.kt similarity index 93% rename from core/toggles/src/main/kotlin/com/tangem/core/toggle/feature/MutableFeatureTogglesManager.kt rename to core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/feature/MutableFeatureTogglesManager.kt index ce9798863e..d1d09ced03 100644 --- a/core/toggles/src/main/kotlin/com/tangem/core/toggle/feature/MutableFeatureTogglesManager.kt +++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/feature/MutableFeatureTogglesManager.kt @@ -1,4 +1,4 @@ -package com.tangem.core.toggle.feature +package com.tangem.core.configtoggle.feature /** * Component for change information about the availability of feature toggles diff --git a/core/toggles/src/main/kotlin/com/tangem/core/toggle/feature/impl/DevFeatureTogglesManager.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/feature/impl/DevFeatureTogglesManager.kt similarity index 90% rename from core/toggles/src/main/kotlin/com/tangem/core/toggle/feature/impl/DevFeatureTogglesManager.kt rename to core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/feature/impl/DevFeatureTogglesManager.kt index 8441522e6d..750dbada43 100644 --- a/core/toggles/src/main/kotlin/com/tangem/core/toggle/feature/impl/DevFeatureTogglesManager.kt +++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/feature/impl/DevFeatureTogglesManager.kt @@ -1,10 +1,10 @@ -package com.tangem.core.toggle.feature.impl +package com.tangem.core.configtoggle.feature.impl import androidx.annotation.VisibleForTesting -import com.tangem.core.toggle.feature.MutableFeatureTogglesManager -import com.tangem.core.toggle.storage.TogglesStorage -import com.tangem.core.toggle.utils.associateToggles -import com.tangem.core.toggle.version.VersionProvider +import com.tangem.core.configtoggle.feature.MutableFeatureTogglesManager +import com.tangem.core.configtoggle.storage.TogglesStorage +import com.tangem.core.configtoggle.utils.associateToggles +import com.tangem.core.configtoggle.version.VersionProvider import com.tangem.datasource.local.preferences.AppPreferencesStore import com.tangem.datasource.local.preferences.PreferencesKeys import com.tangem.datasource.local.preferences.utils.getObjectSyncOrNull diff --git a/core/toggles/src/main/kotlin/com/tangem/core/toggle/feature/impl/FeatureTogglesConstants.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/feature/impl/FeatureTogglesConstants.kt similarity index 70% rename from core/toggles/src/main/kotlin/com/tangem/core/toggle/feature/impl/FeatureTogglesConstants.kt rename to core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/feature/impl/FeatureTogglesConstants.kt index 06fd9d9417..63087a2e90 100644 --- a/core/toggles/src/main/kotlin/com/tangem/core/toggle/feature/impl/FeatureTogglesConstants.kt +++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/feature/impl/FeatureTogglesConstants.kt @@ -1,4 +1,4 @@ -package com.tangem.core.toggle.feature.impl +package com.tangem.core.configtoggle.feature.impl internal object FeatureTogglesConstants { diff --git a/core/toggles/src/main/kotlin/com/tangem/core/toggle/feature/impl/ProdFeatureTogglesManager.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/feature/impl/ProdFeatureTogglesManager.kt similarity index 79% rename from core/toggles/src/main/kotlin/com/tangem/core/toggle/feature/impl/ProdFeatureTogglesManager.kt rename to core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/feature/impl/ProdFeatureTogglesManager.kt index 4624273b81..d723297a45 100644 --- a/core/toggles/src/main/kotlin/com/tangem/core/toggle/feature/impl/ProdFeatureTogglesManager.kt +++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/feature/impl/ProdFeatureTogglesManager.kt @@ -1,10 +1,10 @@ -package com.tangem.core.toggle.feature.impl +package com.tangem.core.configtoggle.feature.impl import androidx.annotation.VisibleForTesting -import com.tangem.core.toggle.feature.FeatureTogglesManager -import com.tangem.core.toggle.storage.TogglesStorage -import com.tangem.core.toggle.utils.associateToggles -import com.tangem.core.toggle.version.VersionProvider +import com.tangem.core.configtoggle.feature.FeatureTogglesManager +import com.tangem.core.configtoggle.storage.TogglesStorage +import com.tangem.core.configtoggle.utils.associateToggles +import com.tangem.core.configtoggle.version.VersionProvider import kotlin.properties.Delegates /** diff --git a/core/toggles/src/main/kotlin/com/tangem/core/toggle/storage/Toggle.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/storage/ConfigToggle.kt similarity index 73% rename from core/toggles/src/main/kotlin/com/tangem/core/toggle/storage/Toggle.kt rename to core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/storage/ConfigToggle.kt index 52973d28d3..6078eea70a 100644 --- a/core/toggles/src/main/kotlin/com/tangem/core/toggle/storage/Toggle.kt +++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/storage/ConfigToggle.kt @@ -1,4 +1,4 @@ -package com.tangem.core.toggle.storage +package com.tangem.core.configtoggle.storage import com.squareup.moshi.Json import com.squareup.moshi.JsonClass @@ -7,14 +7,14 @@ import com.squareup.moshi.JsonClass * Data model with information about config toggle * * @property name toggle name - * @property version version number in which the feature will be included + * @property version version in which the toggle will be enabled * * IMPORTANT: if the version is "undefined", it means that toggle is disabled! * [REDACTED_AUTHOR] */ @JsonClass(generateAdapter = true) -internal data class Toggle( +internal data class ConfigToggle( @Json(name = "name") val name: String, @Json(name = "version") val version: String, ) \ No newline at end of file diff --git a/core/toggles/src/main/kotlin/com/tangem/core/toggle/storage/LocalTogglesStorage.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/storage/LocalTogglesStorage.kt similarity index 72% rename from core/toggles/src/main/kotlin/com/tangem/core/toggle/storage/LocalTogglesStorage.kt rename to core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/storage/LocalTogglesStorage.kt index 1fadc664bd..59086d9658 100644 --- a/core/toggles/src/main/kotlin/com/tangem/core/toggle/storage/LocalTogglesStorage.kt +++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/storage/LocalTogglesStorage.kt @@ -1,4 +1,4 @@ -package com.tangem.core.toggle.storage +package com.tangem.core.configtoggle.storage import com.tangem.datasource.asset.loader.AssetLoader import kotlin.properties.Delegates @@ -15,10 +15,10 @@ internal class LocalTogglesStorage( private val assetLoader: AssetLoader, ) : TogglesStorage { - override var toggles: List by Delegates.notNull() + override var toggles: List by Delegates.notNull() private set override suspend fun populate(path: String) { - toggles = assetLoader.loadList(path) + toggles = assetLoader.loadList(path) } } \ No newline at end of file diff --git a/core/toggles/src/main/kotlin/com/tangem/core/toggle/storage/TogglesStorage.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/storage/TogglesStorage.kt similarity index 75% rename from core/toggles/src/main/kotlin/com/tangem/core/toggle/storage/TogglesStorage.kt rename to core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/storage/TogglesStorage.kt index 43027a29c8..39fa7b2f68 100644 --- a/core/toggles/src/main/kotlin/com/tangem/core/toggle/storage/TogglesStorage.kt +++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/storage/TogglesStorage.kt @@ -1,4 +1,4 @@ -package com.tangem.core.toggle.storage +package com.tangem.core.configtoggle.storage /** * Component that initializes and stores a list of feature toggles @@ -8,7 +8,7 @@ package com.tangem.core.toggle.storage internal interface TogglesStorage { /** List of feature toggles */ - val toggles: List + val toggles: List /** Populate the storage with toggles */ suspend fun populate(path: String) diff --git a/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/utils/CollectionExt.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/utils/CollectionExt.kt new file mode 100644 index 0000000000..68ee66b88c --- /dev/null +++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/utils/CollectionExt.kt @@ -0,0 +1,13 @@ +package com.tangem.core.configtoggle.utils + +import com.tangem.core.configtoggle.storage.ConfigToggle +import com.tangem.core.configtoggle.version.VersionAvailabilityContract + +internal fun List.associateToggles(currentVersion: String): Map { + return associate { localToggle -> + Pair( + first = localToggle.name, + second = VersionAvailabilityContract(currentVersion, localToggle.version), + ) + } +} \ No newline at end of file diff --git a/core/toggles/src/main/kotlin/com/tangem/core/toggle/version/DefaultVersionProvider.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/version/DefaultVersionProvider.kt similarity index 96% rename from core/toggles/src/main/kotlin/com/tangem/core/toggle/version/DefaultVersionProvider.kt rename to core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/version/DefaultVersionProvider.kt index e69c13e2eb..b55e9637c3 100644 --- a/core/toggles/src/main/kotlin/com/tangem/core/toggle/version/DefaultVersionProvider.kt +++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/version/DefaultVersionProvider.kt @@ -1,4 +1,4 @@ -package com.tangem.core.toggle.version +package com.tangem.core.configtoggle.version import android.content.Context import android.content.pm.PackageManager diff --git a/core/toggles/src/main/kotlin/com/tangem/core/toggle/version/Version.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/version/Version.kt similarity index 98% rename from core/toggles/src/main/kotlin/com/tangem/core/toggle/version/Version.kt rename to core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/version/Version.kt index 60b3188565..0822cec520 100644 --- a/core/toggles/src/main/kotlin/com/tangem/core/toggle/version/Version.kt +++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/version/Version.kt @@ -1,4 +1,4 @@ -package com.tangem.core.toggle.version +package com.tangem.core.configtoggle.version import androidx.annotation.VisibleForTesting import timber.log.Timber diff --git a/core/toggles/src/main/kotlin/com/tangem/core/toggle/version/VersionAvailabilityContract.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/version/VersionAvailabilityContract.kt similarity index 93% rename from core/toggles/src/main/kotlin/com/tangem/core/toggle/version/VersionAvailabilityContract.kt rename to core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/version/VersionAvailabilityContract.kt index 61f7e8f1e3..2360052af4 100644 --- a/core/toggles/src/main/kotlin/com/tangem/core/toggle/version/VersionAvailabilityContract.kt +++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/version/VersionAvailabilityContract.kt @@ -1,4 +1,4 @@ -package com.tangem.core.toggle.version +package com.tangem.core.configtoggle.version /** * Version contract to evaluate availability of feature toggle diff --git a/core/toggles/src/main/kotlin/com/tangem/core/toggle/version/VersionProvider.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/version/VersionProvider.kt similarity index 74% rename from core/toggles/src/main/kotlin/com/tangem/core/toggle/version/VersionProvider.kt rename to core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/version/VersionProvider.kt index 1df39f1487..27913b7dce 100644 --- a/core/toggles/src/main/kotlin/com/tangem/core/toggle/version/VersionProvider.kt +++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/version/VersionProvider.kt @@ -1,4 +1,4 @@ -package com.tangem.core.toggle.version +package com.tangem.core.configtoggle.version /** Application version provider */ internal interface VersionProvider { diff --git a/core/toggles/src/test/kotlin/com/tangem/core/toggle/contract/VersionAvailabilityContractTest.kt b/core/config-toggles/src/test/kotlin/com/tangem/core/configtoggle/contract/VersionAvailabilityContractTest.kt similarity index 93% rename from core/toggles/src/test/kotlin/com/tangem/core/toggle/contract/VersionAvailabilityContractTest.kt rename to core/config-toggles/src/test/kotlin/com/tangem/core/configtoggle/contract/VersionAvailabilityContractTest.kt index f9907665f9..ba641dfd04 100644 --- a/core/toggles/src/test/kotlin/com/tangem/core/toggle/contract/VersionAvailabilityContractTest.kt +++ b/core/config-toggles/src/test/kotlin/com/tangem/core/configtoggle/contract/VersionAvailabilityContractTest.kt @@ -1,7 +1,7 @@ -package com.tangem.core.toggle.contract +package com.tangem.core.configtoggle.contract import com.google.common.truth.Truth -import com.tangem.core.toggle.version.VersionAvailabilityContract +import com.tangem.core.configtoggle.version.VersionAvailabilityContract import org.junit.Test /** diff --git a/core/toggles/src/test/kotlin/com/tangem/core/toggle/contract/VersionTest.kt b/core/config-toggles/src/test/kotlin/com/tangem/core/configtoggle/contract/VersionTest.kt similarity index 97% rename from core/toggles/src/test/kotlin/com/tangem/core/toggle/contract/VersionTest.kt rename to core/config-toggles/src/test/kotlin/com/tangem/core/configtoggle/contract/VersionTest.kt index 32c3815325..e61ace5722 100644 --- a/core/toggles/src/test/kotlin/com/tangem/core/toggle/contract/VersionTest.kt +++ b/core/config-toggles/src/test/kotlin/com/tangem/core/configtoggle/contract/VersionTest.kt @@ -1,7 +1,7 @@ -package com.tangem.core.toggle.contract +package com.tangem.core.configtoggle.contract import com.google.common.truth.Truth -import com.tangem.core.toggle.version.Version +import com.tangem.core.configtoggle.version.Version import org.junit.Test /** diff --git a/core/toggles/src/test/kotlin/com/tangem/core/toggle/manager/DevTogglesManagerTest.kt b/core/config-toggles/src/test/kotlin/com/tangem/core/configtoggle/manager/DevTogglesManagerTest.kt similarity index 92% rename from core/toggles/src/test/kotlin/com/tangem/core/toggle/manager/DevTogglesManagerTest.kt rename to core/config-toggles/src/test/kotlin/com/tangem/core/configtoggle/manager/DevTogglesManagerTest.kt index bf3dba4217..b1822c84d9 100644 --- a/core/toggles/src/test/kotlin/com/tangem/core/toggle/manager/DevTogglesManagerTest.kt +++ b/core/config-toggles/src/test/kotlin/com/tangem/core/configtoggle/manager/DevTogglesManagerTest.kt @@ -1,13 +1,13 @@ -package com.tangem.core.toggle.manager +package com.tangem.core.configtoggle.manager import android.annotation.SuppressLint import com.google.common.truth.Truth -import com.tangem.core.toggle.feature.impl.DevFeatureTogglesManager -import com.tangem.core.toggle.feature.impl.FeatureTogglesConstants -import com.tangem.core.toggle.storage.Toggle -import com.tangem.core.toggle.storage.TogglesStorage -import com.tangem.core.toggle.utils.associateToggles -import com.tangem.core.toggle.version.VersionProvider +import com.tangem.core.configtoggle.feature.impl.DevFeatureTogglesManager +import com.tangem.core.configtoggle.feature.impl.FeatureTogglesConstants +import com.tangem.core.configtoggle.storage.ConfigToggle +import com.tangem.core.configtoggle.storage.TogglesStorage +import com.tangem.core.configtoggle.utils.associateToggles +import com.tangem.core.configtoggle.version.VersionProvider import com.tangem.datasource.local.preferences.AppPreferencesStore import com.tangem.datasource.local.preferences.PreferencesKeys import com.tangem.datasource.local.preferences.utils.getObjectSyncOrNull @@ -224,8 +224,8 @@ internal class DevTogglesManagerTest { ) val localFeatureToggles = listOf( - Toggle(name = "INACTIVE_TEST_FEATURE_ENABLED", version = "undefined"), - Toggle(name = "ACTIVE2_TEST_FEATURE_ENABLED", version = "1.0.0"), + ConfigToggle(name = "INACTIVE_TEST_FEATURE_ENABLED", version = "undefined"), + ConfigToggle(name = "ACTIVE2_TEST_FEATURE_ENABLED", version = "1.0.0"), ) } } \ No newline at end of file diff --git a/core/toggles/src/test/kotlin/com/tangem/core/toggle/manager/ProdTogglesManagerTest.kt b/core/config-toggles/src/test/kotlin/com/tangem/core/configtoggle/manager/ProdTogglesManagerTest.kt similarity index 88% rename from core/toggles/src/test/kotlin/com/tangem/core/toggle/manager/ProdTogglesManagerTest.kt rename to core/config-toggles/src/test/kotlin/com/tangem/core/configtoggle/manager/ProdTogglesManagerTest.kt index 8b8f5d2884..6453d3eb4d 100644 --- a/core/toggles/src/test/kotlin/com/tangem/core/toggle/manager/ProdTogglesManagerTest.kt +++ b/core/config-toggles/src/test/kotlin/com/tangem/core/configtoggle/manager/ProdTogglesManagerTest.kt @@ -1,13 +1,13 @@ -package com.tangem.core.toggle.manager +package com.tangem.core.configtoggle.manager import android.content.pm.PackageManager import com.google.common.truth.Truth -import com.tangem.core.toggle.feature.impl.FeatureTogglesConstants -import com.tangem.core.toggle.feature.impl.ProdFeatureTogglesManager -import com.tangem.core.toggle.storage.Toggle -import com.tangem.core.toggle.storage.TogglesStorage -import com.tangem.core.toggle.utils.associateToggles -import com.tangem.core.toggle.version.VersionProvider +import com.tangem.core.configtoggle.feature.impl.FeatureTogglesConstants +import com.tangem.core.configtoggle.feature.impl.ProdFeatureTogglesManager +import com.tangem.core.configtoggle.storage.ConfigToggle +import com.tangem.core.configtoggle.storage.TogglesStorage +import com.tangem.core.configtoggle.utils.associateToggles +import com.tangem.core.configtoggle.version.VersionProvider import io.mockk.* import kotlinx.coroutines.test.runTest import org.junit.Test @@ -124,8 +124,8 @@ internal class ProdTogglesManagerTest { private companion object { val localFeatureToggles = listOf( - Toggle(name = "INACTIVE_TEST_FEATURE_ENABLED", version = "undefined"), - Toggle(name = "ACTIVE2_TEST_FEATURE_ENABLED", version = "1.0.0"), + ConfigToggle(name = "INACTIVE_TEST_FEATURE_ENABLED", version = "undefined"), + ConfigToggle(name = "ACTIVE2_TEST_FEATURE_ENABLED", version = "1.0.0"), ) val disabledFeatureToggles = mapOf( diff --git a/core/toggles/src/test/kotlin/com/tangem/core/toggle/storage/LocalTogglesStorageTest.kt b/core/config-toggles/src/test/kotlin/com/tangem/core/configtoggle/storage/LocalTogglesStorageTest.kt similarity index 85% rename from core/toggles/src/test/kotlin/com/tangem/core/toggle/storage/LocalTogglesStorageTest.kt rename to core/config-toggles/src/test/kotlin/com/tangem/core/configtoggle/storage/LocalTogglesStorageTest.kt index 7a875582d6..4a8e6550b8 100644 --- a/core/toggles/src/test/kotlin/com/tangem/core/toggle/storage/LocalTogglesStorageTest.kt +++ b/core/config-toggles/src/test/kotlin/com/tangem/core/configtoggle/storage/LocalTogglesStorageTest.kt @@ -1,11 +1,11 @@ -package com.tangem.core.toggle.storage +package com.tangem.core.configtoggle.storage import android.annotation.SuppressLint import com.google.common.truth.Truth import com.squareup.moshi.JsonAdapter import com.squareup.moshi.Moshi import com.squareup.moshi.Types -import com.tangem.core.toggle.feature.impl.FeatureTogglesConstants +import com.tangem.core.configtoggle.feature.impl.FeatureTogglesConstants import com.tangem.datasource.asset.loader.AssetLoader import com.tangem.datasource.asset.reader.AssetReader import io.mockk.* @@ -21,7 +21,7 @@ internal class LocalTogglesStorageTest { private val assetReader = mockk() private val moshi = mockk() - private val jsonAdapter = mockk>>() + private val jsonAdapter = mockk>>() // Impossible to mockk AssetLoader because it implement inline functions private val assetLoader = AssetLoader(assetReader = assetReader, moshi = moshi) @@ -57,7 +57,7 @@ internal class LocalTogglesStorageTest { jsonAdapter.fromJson(json) } - Truth.assertThat(storage.toggles).containsExactlyElementsIn(emptyList()) + Truth.assertThat(storage.toggles).containsExactlyElementsIn(emptyList()) } @Test @@ -69,14 +69,14 @@ internal class LocalTogglesStorageTest { coVerifyOrder { assetReader.read(CONFIG_FILE_NAME) } verifyAll(inverse = true) { jsonAdapter.fromJson(any()) } - Truth.assertThat(storage.toggles).containsExactlyElementsIn(emptyList()) + Truth.assertThat(storage.toggles).containsExactlyElementsIn(emptyList()) } private fun everyReadingJson() = coEvery { assetReader.read(CONFIG_FILE_NAME) } private fun everyCreatingMoshiAdapter() = every { - val types = Types.newParameterizedType(List::class.java, Toggle::class.java) - moshi.adapter>(types) + val types = Types.newParameterizedType(List::class.java, ConfigToggle::class.java) + moshi.adapter>(types) } private fun everyMappingJson() = every { jsonAdapter.fromJson(json) } @@ -98,8 +98,8 @@ internal class LocalTogglesStorageTest { """.trimIndent() val featureToggles = listOf( - Toggle(name = "INACTIVE_TEST_FEATURE_ENABLED", version = "undefined"), - Toggle(name = "ACTIVE2_TEST_FEATURE_ENABLED", version = "1.0.0"), + ConfigToggle(name = "INACTIVE_TEST_FEATURE_ENABLED", version = "undefined"), + ConfigToggle(name = "ACTIVE2_TEST_FEATURE_ENABLED", version = "1.0.0"), ) } } \ No newline at end of file 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 1f4b7caf2b..cf9ecaf3f0 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 @@ -55,7 +55,7 @@ object PreferencesKeys { val FEATURE_TOGGLES_KEY by lazy { stringPreferencesKey(name = "featureToggles") } - val EXCLUDED_BLOCKCHAINS_KEY by lazy { stringPreferencesKey(name = "excludedBlockchains") } + val EXCLUDED_BLOCKCHAINS_KEY by lazy { stringSetPreferencesKey(name = "excludedBlockchains") } val WAS_TWINS_ONBOARDING_SHOWN by lazy { booleanPreferencesKey(name = "twinsOnboardingShown") } diff --git a/core/datasource/src/main/java/com/tangem/datasource/local/preferences/utils/AppPreferencesStoreExt.kt b/core/datasource/src/main/java/com/tangem/datasource/local/preferences/utils/AppPreferencesStoreExt.kt index ebfe3c221d..0369cf22cd 100644 --- a/core/datasource/src/main/java/com/tangem/datasource/local/preferences/utils/AppPreferencesStoreExt.kt +++ b/core/datasource/src/main/java/com/tangem/datasource/local/preferences/utils/AppPreferencesStoreExt.kt @@ -98,12 +98,6 @@ suspend inline fun AppPreferencesStore.storeObjectList(key: Preferen edit { it[key] = adapter.toJson(value) } } -/** Store set of data [value] by string [key] */ -suspend inline fun AppPreferencesStore.storeObjectSet(key: Preferences.Key, value: Set) { - val adapter = moshi.adapter>(Types.newParameterizedType(Set::class.java, T::class.java)) - edit { it[key] = adapter.toJson(value) } -} - /** Get flow of list of data [T] by string [key]. If data is not found, it returns `null` */ inline fun AppPreferencesStore.getObjectList(key: Preferences.Key): Flow?> { val adapter = moshi.adapter>(Types.newParameterizedType(List::class.java, T::class.java)) diff --git a/core/toggles/src/main/kotlin/com/tangem/core/toggle/utils/CollectionExt.kt b/core/toggles/src/main/kotlin/com/tangem/core/toggle/utils/CollectionExt.kt deleted file mode 100644 index 44a378ac2c..0000000000 --- a/core/toggles/src/main/kotlin/com/tangem/core/toggle/utils/CollectionExt.kt +++ /dev/null @@ -1,13 +0,0 @@ -package com.tangem.core.toggle.utils - -import com.tangem.core.toggle.storage.Toggle -import com.tangem.core.toggle.version.VersionAvailabilityContract - -internal fun List.associateToggles(currentVersion: String): Map { - return associate { localToggle -> - Pair( - first = localToggle.name, - second = VersionAvailabilityContract(currentVersion, localToggle.version), - ) - } -} \ No newline at end of file diff --git a/features/details/impl/build.gradle.kts b/features/details/impl/build.gradle.kts index b38b859e27..b3981ae397 100644 --- a/features/details/impl/build.gradle.kts +++ b/features/details/impl/build.gradle.kts @@ -21,7 +21,7 @@ dependencies { /* Project - Core */ implementation(projects.core.decompose) implementation(projects.core.ui) - implementation(projects.core.toggles) + implementation(projects.core.configToggles) implementation(projects.core.navigation) implementation(projects.core.analytics) implementation(projects.core.analytics.models) diff --git a/features/disclaimer/impl/build.gradle.kts b/features/disclaimer/impl/build.gradle.kts index 443b47a2ac..c7d9e6d9fd 100644 --- a/features/disclaimer/impl/build.gradle.kts +++ b/features/disclaimer/impl/build.gradle.kts @@ -28,7 +28,7 @@ dependencies { /** Core modules */ implementation(projects.core.ui) implementation(projects.core.utils) - implementation(projects.core.toggles) + implementation(projects.core.configToggles) implementation(projects.core.navigation) implementation(projects.core.decompose) implementation(projects.common.routing) diff --git a/features/manage-tokens/impl/build.gradle.kts b/features/manage-tokens/impl/build.gradle.kts index 896ec5d1c3..1d92f0d67a 100644 --- a/features/manage-tokens/impl/build.gradle.kts +++ b/features/manage-tokens/impl/build.gradle.kts @@ -19,7 +19,7 @@ dependencies { implementation(projects.core.decompose) implementation(projects.core.ui) implementation(projects.common.routing) - implementation(projects.core.toggles) + implementation(projects.core.configToggles) implementation(projects.core.analytics) /* Project - Domain */ diff --git a/features/markets/impl/build.gradle.kts b/features/markets/impl/build.gradle.kts index ee18d8dfb1..6b12108830 100644 --- a/features/markets/impl/build.gradle.kts +++ b/features/markets/impl/build.gradle.kts @@ -63,7 +63,7 @@ dependencies { /* Core */ implementation(projects.core.decompose) implementation(projects.core.ui) - implementation(projects.core.toggles) + implementation(projects.core.configToggles) implementation(projects.core.analytics) implementation(projects.core.analytics.models) diff --git a/features/onboarding-v2/impl/build.gradle.kts b/features/onboarding-v2/impl/build.gradle.kts index d9d42209ae..d4aef21340 100644 --- a/features/onboarding-v2/impl/build.gradle.kts +++ b/features/onboarding-v2/impl/build.gradle.kts @@ -16,7 +16,7 @@ dependencies { implementation(projects.features.onboardingV2.api) /** Core modules */ - implementation(projects.core.toggles) + implementation(projects.core.configToggles) implementation(projects.core.analytics) implementation(projects.core.analytics.models) implementation(projects.core.utils) diff --git a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/DefaultOnboardingV2FeatureToggles.kt b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/DefaultOnboardingV2FeatureToggles.kt index d677f7e5bf..529bebe5d7 100644 --- a/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/DefaultOnboardingV2FeatureToggles.kt +++ b/features/onboarding-v2/impl/src/main/kotlin/com/tangem/features/onboarding/v2/DefaultOnboardingV2FeatureToggles.kt @@ -1,6 +1,6 @@ package com.tangem.features.onboarding.v2 -import com.tangem.core.toggle.feature.FeatureTogglesManager +import com.tangem.core.configtoggle.feature.FeatureTogglesManager import javax.inject.Inject internal class DefaultOnboardingV2FeatureToggles @Inject constructor( diff --git a/features/onboarding/build.gradle.kts b/features/onboarding/build.gradle.kts index 480638468a..fb353a3220 100644 --- a/features/onboarding/build.gradle.kts +++ b/features/onboarding/build.gradle.kts @@ -15,7 +15,7 @@ dependencies { /** Core modules */ implementation(project(":common")) implementation(project(":domain:models")) - implementation(project(":core:toggles")) + implementation(project(":core:config-toggles")) implementation(project(":core:datasource")) implementation(project(":core:analytics")) implementation(projects.core.analytics.models) diff --git a/features/onramp/impl/build.gradle.kts b/features/onramp/impl/build.gradle.kts index b6a32faee2..d2aa39d798 100644 --- a/features/onramp/impl/build.gradle.kts +++ b/features/onramp/impl/build.gradle.kts @@ -21,7 +21,7 @@ dependencies { /** Project - Core */ implementation(projects.core.decompose) implementation(projects.core.ui) - implementation(projects.core.toggles) + implementation(projects.core.configToggles) implementation(projects.core.navigation) /** Project - Common */ diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/DefaultOnrampFeatureToggles.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/DefaultOnrampFeatureToggles.kt index 2669d201e9..337eb159c5 100644 --- a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/DefaultOnrampFeatureToggles.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/DefaultOnrampFeatureToggles.kt @@ -1,6 +1,6 @@ package com.tangem.features.onramp -import com.tangem.core.toggle.feature.FeatureTogglesManager +import com.tangem.core.configtoggle.feature.FeatureTogglesManager internal class DefaultOnrampFeatureToggles( private val featureTogglesManager: FeatureTogglesManager, diff --git a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/OnrampFeatureModule.kt b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/OnrampFeatureModule.kt index 3392e56a71..c10c24183d 100644 --- a/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/OnrampFeatureModule.kt +++ b/features/onramp/impl/src/main/kotlin/com/tangem/features/onramp/OnrampFeatureModule.kt @@ -1,8 +1,6 @@ package com.tangem.features.onramp -import com.tangem.core.toggle.feature.FeatureTogglesManager -import com.tangem.features.onramp.DefaultOnrampFeatureToggles -import com.tangem.features.onramp.OnrampFeatureToggles +import com.tangem.core.configtoggle.feature.FeatureTogglesManager import dagger.Module import dagger.Provides import dagger.hilt.InstallIn diff --git a/features/push-notifications/impl/build.gradle.kts b/features/push-notifications/impl/build.gradle.kts index 5cb0bfe1d8..de3b57819b 100644 --- a/features/push-notifications/impl/build.gradle.kts +++ b/features/push-notifications/impl/build.gradle.kts @@ -27,7 +27,7 @@ dependencies { /** Core modules */ implementation(projects.core.ui) - implementation(projects.core.toggles) + implementation(projects.core.configToggles) implementation(projects.core.navigation) implementation(projects.core.analytics) implementation(projects.core.analytics.models) diff --git a/features/send/impl/build.gradle.kts b/features/send/impl/build.gradle.kts index 1af9e0ba59..176864f05a 100644 --- a/features/send/impl/build.gradle.kts +++ b/features/send/impl/build.gradle.kts @@ -43,7 +43,7 @@ dependencies { implementation(deps.tangem.blockchain) /** Core modules */ - implementation(projects.core.toggles) + implementation(projects.core.configToggles) implementation(projects.core.ui) implementation(projects.core.utils) implementation(projects.core.navigation) diff --git a/features/staking/impl/build.gradle.kts b/features/staking/impl/build.gradle.kts index ed61b2bdcb..6c77d65471 100644 --- a/features/staking/impl/build.gradle.kts +++ b/features/staking/impl/build.gradle.kts @@ -40,7 +40,7 @@ dependencies { implementation(deps.tangem.blockchain) /** Core modules */ - implementation(projects.core.toggles) + implementation(projects.core.configToggles) implementation(projects.core.ui) implementation(projects.core.utils) implementation(projects.core.navigation) diff --git a/features/swap/presentation/build.gradle.kts b/features/swap/presentation/build.gradle.kts index 23df0ea2f3..ddbb0c1e9a 100644 --- a/features/swap/presentation/build.gradle.kts +++ b/features/swap/presentation/build.gradle.kts @@ -15,7 +15,7 @@ dependencies { /** Core modules */ implementation(projects.core.analytics) implementation(projects.core.analytics.models) - implementation(projects.core.toggles) + implementation(projects.core.configToggles) implementation(projects.core.navigation) implementation(projects.core.utils) implementation(projects.core.ui) diff --git a/features/tester/impl/build.gradle.kts b/features/tester/impl/build.gradle.kts index 6158abaeb9..5be818db4b 100644 --- a/features/tester/impl/build.gradle.kts +++ b/features/tester/impl/build.gradle.kts @@ -39,7 +39,7 @@ dependencies { /** Core modules */ implementation(projects.core.datasource) - implementation(projects.core.toggles) + implementation(projects.core.configToggles) implementation(projects.core.ui) implementation(projects.core.utils) implementation(projects.core.navigation) diff --git a/features/tester/impl/src/main/java/com/tangem/feature/tester/presentation/featuretoggles/viewmodels/FeatureTogglesViewModel.kt b/features/tester/impl/src/main/java/com/tangem/feature/tester/presentation/featuretoggles/viewmodels/FeatureTogglesViewModel.kt index 34b965c18b..0da5a80bad 100644 --- a/features/tester/impl/src/main/java/com/tangem/feature/tester/presentation/featuretoggles/viewmodels/FeatureTogglesViewModel.kt +++ b/features/tester/impl/src/main/java/com/tangem/feature/tester/presentation/featuretoggles/viewmodels/FeatureTogglesViewModel.kt @@ -5,9 +5,9 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue import androidx.lifecycle.ViewModel import androidx.lifecycle.viewModelScope +import com.tangem.core.configtoggle.feature.FeatureTogglesManager +import com.tangem.core.configtoggle.feature.MutableFeatureTogglesManager import com.tangem.core.navigation.finisher.AppFinisher -import com.tangem.core.toggle.feature.FeatureTogglesManager -import com.tangem.core.toggle.feature.MutableFeatureTogglesManager import com.tangem.feature.tester.presentation.featuretoggles.models.TesterFeatureToggle import com.tangem.feature.tester.presentation.featuretoggles.state.FeatureTogglesContentState import com.tangem.feature.tester.presentation.navigation.InnerTesterRouter diff --git a/features/tokendetails/impl/build.gradle.kts b/features/tokendetails/impl/build.gradle.kts index cf37f98aed..d7fd0ffad5 100644 --- a/features/tokendetails/impl/build.gradle.kts +++ b/features/tokendetails/impl/build.gradle.kts @@ -54,7 +54,7 @@ dependencies { implementation(projects.core.datasource) implementation(projects.core.deepLinks) implementation(projects.core.deepLinks.global) - implementation(projects.core.toggles) + implementation(projects.core.configToggles) implementation(projects.core.decompose) implementation(projects.common.ui) diff --git a/features/wallet-settings/impl/build.gradle.kts b/features/wallet-settings/impl/build.gradle.kts index 5af449e0c1..9bad883a97 100644 --- a/features/wallet-settings/impl/build.gradle.kts +++ b/features/wallet-settings/impl/build.gradle.kts @@ -20,7 +20,7 @@ dependencies { /* Project - Core */ implementation(projects.core.decompose) implementation(projects.core.ui) - implementation(projects.core.toggles) + implementation(projects.core.configToggles) implementation(projects.core.navigation) implementation(projects.core.analytics) implementation(projects.core.analytics.models) diff --git a/features/wallet/impl/build.gradle.kts b/features/wallet/impl/build.gradle.kts index 4ed8e4e465..624fa004c5 100644 --- a/features/wallet/impl/build.gradle.kts +++ b/features/wallet/impl/build.gradle.kts @@ -46,7 +46,7 @@ dependencies { kapt(deps.hilt.kapt) /** Core modules */ - implementation(projects.core.toggles) + implementation(projects.core.configToggles) implementation(projects.core.navigation) implementation(projects.core.ui) implementation(projects.core.utils) diff --git a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/featuretoggles/DefaultWalletFeatureToggles.kt b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/featuretoggles/DefaultWalletFeatureToggles.kt index b32cabf35d..c3aba027cc 100644 --- a/features/wallet/impl/src/main/java/com/tangem/feature/wallet/featuretoggles/DefaultWalletFeatureToggles.kt +++ b/features/wallet/impl/src/main/java/com/tangem/feature/wallet/featuretoggles/DefaultWalletFeatureToggles.kt @@ -1,6 +1,6 @@ package com.tangem.feature.wallet.featuretoggles -import com.tangem.core.toggle.feature.FeatureTogglesManager +import com.tangem.core.configtoggle.feature.FeatureTogglesManager import com.tangem.features.wallet.featuretoggles.WalletFeatureToggles import javax.inject.Inject diff --git a/libs/blockchain-sdk/build.gradle.kts b/libs/blockchain-sdk/build.gradle.kts index 864077c492..96dcda0905 100644 --- a/libs/blockchain-sdk/build.gradle.kts +++ b/libs/blockchain-sdk/build.gradle.kts @@ -13,7 +13,7 @@ dependencies { // region Core modules implementation(projects.core.datasource) - implementation(projects.core.toggles) + implementation(projects.core.configToggles) implementation(projects.core.utils) // endregion diff --git a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/di/BlockchainSDKFactoryModule.kt b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/di/BlockchainSDKFactoryModule.kt index 5e75ba18ed..e0ac497835 100644 --- a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/di/BlockchainSDKFactoryModule.kt +++ b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/di/BlockchainSDKFactoryModule.kt @@ -9,7 +9,7 @@ import com.tangem.blockchainsdk.datastorage.DefaultBlockchainDataStorage import com.tangem.blockchainsdk.featuretoggles.DefaultBlockchainSDKFeatureToggles import com.tangem.blockchainsdk.loader.BlockchainProvidersResponseLoader import com.tangem.blockchainsdk.store.DefaultRuntimeStore -import com.tangem.core.toggle.feature.FeatureTogglesManager +import com.tangem.core.configtoggle.feature.FeatureTogglesManager import com.tangem.datasource.api.tangemTech.TangemTechApi import com.tangem.datasource.local.config.environment.EnvironmentConfigStorage import com.tangem.datasource.local.preferences.AppPreferencesStore diff --git a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/featuretoggles/DefaultBlockchainSDKFeatureToggles.kt b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/featuretoggles/DefaultBlockchainSDKFeatureToggles.kt index 99a4bfeaa0..2242f2675f 100644 --- a/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/featuretoggles/DefaultBlockchainSDKFeatureToggles.kt +++ b/libs/blockchain-sdk/src/main/java/com/tangem/blockchainsdk/featuretoggles/DefaultBlockchainSDKFeatureToggles.kt @@ -1,6 +1,6 @@ package com.tangem.blockchainsdk.featuretoggles -import com.tangem.core.toggle.feature.FeatureTogglesManager +import com.tangem.core.configtoggle.feature.FeatureTogglesManager internal class DefaultBlockchainSDKFeatureToggles( private val featureTogglesManager: FeatureTogglesManager, diff --git a/settings.gradle.kts b/settings.gradle.kts index a84de9b176..d8139ac1f0 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -127,7 +127,7 @@ include(":common:routing") include(":core:analytics") include(":core:analytics:models") include(":core:datasource") -include(":core:toggles") +include(":core:config-toggles") include(":core:navigation") include(":core:res") include(":core:ui")