From e3578607446ad8d2b88f9870902cfbe65c8d95c8 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 17 Dec 2024 18:34:29 +0400 Subject: [PATCH 1/4] Updated on 2026-08-14 --- .../src/main/assets/configs/excluded_blockchains_config.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/core/config-toggles/src/main/assets/configs/excluded_blockchains_config.json b/core/config-toggles/src/main/assets/configs/excluded_blockchains_config.json index 8d520b49a3..5a48cc92c0 100644 --- a/core/config-toggles/src/main/assets/configs/excluded_blockchains_config.json +++ b/core/config-toggles/src/main/assets/configs/excluded_blockchains_config.json @@ -7,6 +7,10 @@ "name": "NEXA", "version": "undefined" }, + { + "name": "NEXA/test", + "version": "undefined" + }, { "name": "clore-ai", "version": "undefined" From e4e0dbdea132cd3a559594c356846d24addfbede Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 17 Dec 2024 18:34:41 +0400 Subject: [PATCH 2/4] Updated on 2026-08-14 --- .../impl/DefaultExcludedBlockchainsManager.kt | 52 ++++++++++--------- .../local/preferences/PreferencesKeys.kt | 2 +- 2 files changed, 28 insertions(+), 26 deletions(-) diff --git a/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/blockchain/impl/DefaultExcludedBlockchainsManager.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/blockchain/impl/DefaultExcludedBlockchainsManager.kt index 8c208bae34..0a260230e9 100644 --- a/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/blockchain/impl/DefaultExcludedBlockchainsManager.kt +++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/blockchain/impl/DefaultExcludedBlockchainsManager.kt @@ -6,8 +6,8 @@ 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.getSyncOrDefault -import com.tangem.datasource.local.preferences.utils.store +import com.tangem.datasource.local.preferences.utils.getObjectMapSync +import com.tangem.datasource.local.preferences.utils.storeObjectMap internal class DefaultExcludedBlockchainsManager( private val localTogglesStorage: TogglesStorage, @@ -17,62 +17,64 @@ internal class DefaultExcludedBlockchainsManager( private var isInitialized: Boolean = false - private lateinit var currentExcludedBlockchainsIds: Set - private lateinit var localExcludedBlockchainsIds: Set + private lateinit var currentExcludedBlockchains: MutableMap + private lateinit var localExcludedBlockchains: Map override val excludedBlockchainsIds: Set get() { if (!isInitialized) error("ExcludedBlockchainsManager is not initialized") - return currentExcludedBlockchainsIds + return currentExcludedBlockchains + .filterValues { it } + .keys } override suspend fun init() { localTogglesStorage.populate(path = "configs/excluded_blockchains_config") - val storedExcludedBlockchainsIds = appPreferencesStore.getSyncOrDefault( + val storedExcludedBlockchainsIds = appPreferencesStore.getObjectMapSync( key = PreferencesKeys.EXCLUDED_BLOCKCHAINS_KEY, - default = emptySet(), ) - localExcludedBlockchainsIds = localTogglesStorage.toggles + localExcludedBlockchains = localTogglesStorage.toggles .associateToggles(currentVersion = versionProvider.get().orEmpty()) - .filterValues { isIncluded -> !isIncluded } - .keys + .mapValues { (_, isIncluded) -> !isIncluded } - if (storedExcludedBlockchainsIds.isEmpty()) { - recoverLocalConfig() - } else { - currentExcludedBlockchainsIds = storedExcludedBlockchainsIds - } + currentExcludedBlockchains = (localExcludedBlockchains.keys + storedExcludedBlockchainsIds.keys) + .fold(mutableMapOf()) { acc, blockchainId -> + val isExcluded = storedExcludedBlockchainsIds[blockchainId] ?: localExcludedBlockchains[blockchainId] + + requireNotNull(isExcluded) { + "Unable to find $blockchainId in local or stored excluded blockchains" + } + + acc[blockchainId] = isExcluded + acc + } isInitialized = true } override suspend fun excludeBlockchain(mainnetId: String, isExcluded: Boolean) { - if (isExcluded) { - currentExcludedBlockchainsIds += mainnetId - } else { - currentExcludedBlockchainsIds -= mainnetId - } + currentExcludedBlockchains[mainnetId] = isExcluded storeCurrent() } override fun isMatchLocalConfig(): Boolean { - return currentExcludedBlockchainsIds == localExcludedBlockchainsIds + return currentExcludedBlockchains == localExcludedBlockchains } override suspend fun recoverLocalConfig() { - currentExcludedBlockchainsIds = localExcludedBlockchainsIds + currentExcludedBlockchains = localExcludedBlockchains.toMutableMap() storeCurrent() } private suspend fun storeCurrent() { - appPreferencesStore.store( - PreferencesKeys.EXCLUDED_BLOCKCHAINS_KEY, - currentExcludedBlockchainsIds, + appPreferencesStore.storeObjectMap( + key = PreferencesKeys.EXCLUDED_BLOCKCHAINS_KEY, + value = currentExcludedBlockchains, ) } } \ 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 df2f985c7d..0e9a1885e9 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 { stringSetPreferencesKey(name = "excludedBlockchains") } + val EXCLUDED_BLOCKCHAINS_KEY by lazy { stringPreferencesKey(name = "excludedBlockchainsV2") } val WAS_TWINS_ONBOARDING_SHOWN by lazy { booleanPreferencesKey(name = "twinsOnboardingShown") } From b15d95bc40c147dbb855d0ba4d33483355d03982 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 17 Dec 2024 18:21:42 +0300 Subject: [PATCH 3/4] Updated on 2026-08-14 --- app/src/main/res/layout/fragment_onboarding_wallet.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/layout/fragment_onboarding_wallet.xml b/app/src/main/res/layout/fragment_onboarding_wallet.xml index c9fb79355a..98ad59717a 100644 --- a/app/src/main/res/layout/fragment_onboarding_wallet.xml +++ b/app/src/main/res/layout/fragment_onboarding_wallet.xml @@ -178,9 +178,9 @@ android:id="@+id/tv_body" android:layout_width="0dp" android:layout_height="wrap_content" - android:layout_marginStart="@dimen/home_bottom_tv_body_margin_start" + android:layout_marginStart="32dp" android:layout_marginTop="@dimen/home_bottom_tv_body_margin_top" - android:layout_marginEnd="@dimen/home_bottom_tv_body_margin_end" + android:layout_marginEnd="32dp" android:textAlignment="center" android:textColor="@color/text_secondary" android:textSize="16sp" From 5bef8947726848a2c080d6510818743b508a832a Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 17 Dec 2024 19:18:19 +0300 Subject: [PATCH 4/4] Updated on 2026-08-14 --- gradle/dependencies.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index cc51c50b34..85cc0139a0 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -88,7 +88,7 @@ markdownComposeView = "0.5.4" # endregion Other libraries # region Tangem -tangemBlockchainSdk = "release-app_5.19-883" +tangemBlockchainSdk = "release-app_5.19-885" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "release-app_5.19-414" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^