From 2d6b1eb648dc8c93f60477f8313100c0c31ac1b8 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 18 Jul 2025 19:22:48 +0300 Subject: [PATCH 1/9] Updated on 2026-08-14 --- .../src/main/assets/configs/feature_toggles_config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/config-toggles/src/main/assets/configs/feature_toggles_config.json b/core/config-toggles/src/main/assets/configs/feature_toggles_config.json index bbc46e5650..35ffe025b0 100644 --- a/core/config-toggles/src/main/assets/configs/feature_toggles_config.json +++ b/core/config-toggles/src/main/assets/configs/feature_toggles_config.json @@ -57,7 +57,7 @@ }, { "name": "PUSH_NOTIFICATIONS_ENABLED", - "version": "undefined" + "version": "5.26.1" }, { "name": "USEDESK_ENABLED", From bef8d917e1afb1c4a349244947353b041bbd82c1 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 21 Jul 2025 10:37:25 +0300 Subject: [PATCH 2/9] Updated on 2026-08-14 --- app/build.gradle.kts | 5 +++-- features/kyc/impl/build.gradle.kts | 3 ++- settings.gradle.kts | 5 +++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 91ee07995e..6502728cd8 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -222,8 +222,9 @@ dependencies { implementation(projects.features.usedesk.impl) implementation(projects.features.hotWallet.api) implementation(projects.features.hotWallet.impl) - implementation(projects.features.kyc.api) - implementation(projects.features.kyc.impl) + //TODO disable for release because of the permissions + // implementation(projects.features.kyc.api) + // implementation(projects.features.kyc.impl) implementation(projects.features.welcome.api) implementation(projects.features.welcome.impl) implementation(projects.features.createWalletSelection.api) diff --git a/features/kyc/impl/build.gradle.kts b/features/kyc/impl/build.gradle.kts index 1bf8fc66f2..3e07cc6bd5 100644 --- a/features/kyc/impl/build.gradle.kts +++ b/features/kyc/impl/build.gradle.kts @@ -13,7 +13,8 @@ android { dependencies { /** Api */ - implementation(projects.features.kyc.api) + //TODO disable for release because of the permissions + // implementation(projects.features.kyc.api) /** Domain */ implementation(projects.domain.visa) diff --git a/settings.gradle.kts b/settings.gradle.kts index faba1334a8..f4529d9172 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -249,8 +249,9 @@ include(":features:walletconnect:impl") include(":features:hot-wallet:api") include(":features:hot-wallet:impl") -include(":features:kyc:api") -include(":features:kyc:impl") +//TODO disable for release because of the permissions +// include(":features:kyc:api") +// include(":features:kyc:impl") include(":features:create-wallet-selection:api") include(":features:create-wallet-selection:impl") From cabe928f79e275debba1beb50d572ecd3200aa52 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 22 Jul 2025 13:26:37 +0300 Subject: [PATCH 3/9] Updated on 2026-08-14 --- gradle/tangem_dependencies.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/tangem_dependencies.toml b/gradle/tangem_dependencies.toml index 600a157d50..e7fcfa9113 100644 --- a/gradle/tangem_dependencies.toml +++ b/gradle/tangem_dependencies.toml @@ -5,7 +5,7 @@ # https://github.com/tangem/tangem-sdk-android/ # https://github.com/tangem/vico -tangemBlockchainSdk = "releases-5.26.0-1114" +tangemBlockchainSdk = "releases-5.26.0-1123" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "releases-5.26.0-493" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ From d7f4ae0ab364c8d0b7b5a86975a2d21377690919 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 22 Jul 2025 10:33:54 +0000 Subject: [PATCH 4/9] Updated on 2026-08-14 --- gradle/tangem_dependencies.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/tangem_dependencies.toml b/gradle/tangem_dependencies.toml index 600a157d50..e7fcfa9113 100644 --- a/gradle/tangem_dependencies.toml +++ b/gradle/tangem_dependencies.toml @@ -5,7 +5,7 @@ # https://github.com/tangem/tangem-sdk-android/ # https://github.com/tangem/vico -tangemBlockchainSdk = "releases-5.26.0-1114" +tangemBlockchainSdk = "releases-5.26.0-1123" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds tangemCardSdk = "releases-5.26.0-493" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ From ed58286a8c29b06d57f27bee25cacdf992c95a10 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 22 Jul 2025 20:26:37 +0300 Subject: [PATCH 5/9] Updated on 2026-08-14 --- .../tap/data/DefaultVisaAuthTokenStorage.kt | 1 + .../tangem/tap/data/DefaultVisaOTPStorage.kt | 1 + .../di/UserWalletsListManagerModule.kt | 17 ++++++++++++++--- .../BiometricUserWalletsListManager.kt | 2 +- .../repository/SelectedUserWalletRepository.kt | 4 ++-- .../DefaultSelectedUserWalletRepository.kt | 9 ++++++--- gradle/tangem_dependencies.toml | 2 +- 7 files changed, 26 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/data/DefaultVisaAuthTokenStorage.kt b/app/src/main/java/com/tangem/tap/data/DefaultVisaAuthTokenStorage.kt index 28f8fdf2a6..3026ce560a 100644 --- a/app/src/main/java/com/tangem/tap/data/DefaultVisaAuthTokenStorage.kt +++ b/app/src/main/java/com/tangem/tap/data/DefaultVisaAuthTokenStorage.kt @@ -21,6 +21,7 @@ internal class DefaultVisaAuthTokenStorage @Inject constructor( private val secureStorage by lazy { AndroidSecureStorageV2( appContext = applicationContext, + useStrongBox = false, name = "visa_auth_storage", ) } diff --git a/app/src/main/java/com/tangem/tap/data/DefaultVisaOTPStorage.kt b/app/src/main/java/com/tangem/tap/data/DefaultVisaOTPStorage.kt index e6ad08f73d..56acf9f399 100644 --- a/app/src/main/java/com/tangem/tap/data/DefaultVisaOTPStorage.kt +++ b/app/src/main/java/com/tangem/tap/data/DefaultVisaOTPStorage.kt @@ -21,6 +21,7 @@ class DefaultVisaOTPStorage @Inject constructor( private val secureStorage by lazy { AndroidSecureStorageV2( appContext = applicationContext, + useStrongBox = false, name = "visa_otp_storage", ) } diff --git a/app/src/main/java/com/tangem/tap/domain/userWalletList/di/UserWalletsListManagerModule.kt b/app/src/main/java/com/tangem/tap/domain/userWalletList/di/UserWalletsListManagerModule.kt index f2e8fb0312..86be1e5223 100644 --- a/app/src/main/java/com/tangem/tap/domain/userWalletList/di/UserWalletsListManagerModule.kt +++ b/app/src/main/java/com/tangem/tap/domain/userWalletList/di/UserWalletsListManagerModule.kt @@ -49,8 +49,9 @@ internal object UserWalletsListManagerModule { return GeneralUserWalletsListManager( runtimeUserWalletsListManager = RuntimeUserWalletsListManager(), biometricUserWalletsListManager = createBiometricUserWalletsListManager( - applicationContext, - analyticsEventHandler, + applicationContext = applicationContext, + analyticsEventHandler = analyticsEventHandler, + dispatchers = dispatchers, ), appPreferencesStore = appPreferencesStore, dispatchers = dispatchers, @@ -60,6 +61,7 @@ internal object UserWalletsListManagerModule { private fun createBiometricUserWalletsListManager( applicationContext: Context, analyticsEventHandler: AnalyticsEventHandler, + dispatchers: CoroutineDispatcherProvider, ): UserWalletsListManager { val moshi = Moshi.Builder() .add(WalletDerivedKeysMapAdapter()) @@ -83,8 +85,14 @@ internal object UserWalletsListManagerModule { ), androidSecureStorageV2 = AndroidSecureStorageV2( appContext = applicationContext, + useStrongBox = true, name = "user_wallets_storage2", ), + androidSecureStorageV3 = AndroidSecureStorageV2( + appContext = applicationContext, + useStrongBox = false, + name = "user_wallets_storage3", + ), ) val authenticatedStorage = AuthenticatedStorage( @@ -114,7 +122,10 @@ internal object UserWalletsListManagerModule { secureStorage = secureStorage, ) - val selectedUserWalletRepository = DefaultSelectedUserWalletRepository(secureStorage = secureStorage) + val selectedUserWalletRepository = DefaultSelectedUserWalletRepository( + secureStorage = secureStorage, + dispatchers = dispatchers, + ) return BiometricUserWalletsListManager( keysRepository = keysRepository, diff --git a/app/src/main/java/com/tangem/tap/domain/userWalletList/implementation/BiometricUserWalletsListManager.kt b/app/src/main/java/com/tangem/tap/domain/userWalletList/implementation/BiometricUserWalletsListManager.kt index 4774cebee1..bd05d22cf7 100644 --- a/app/src/main/java/com/tangem/tap/domain/userWalletList/implementation/BiometricUserWalletsListManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/userWalletList/implementation/BiometricUserWalletsListManager.kt @@ -327,7 +327,7 @@ internal class BiometricUserWalletsListManager( } } - private fun findOrSetSelectedWallet( + private suspend fun findOrSetSelectedWallet( prevSelectedWalletId: UserWalletId?, prevSelectedWalletIndex: Int, userWallets: List, diff --git a/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/SelectedUserWalletRepository.kt b/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/SelectedUserWalletRepository.kt index 61c2a2eec4..5aab49f486 100644 --- a/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/SelectedUserWalletRepository.kt +++ b/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/SelectedUserWalletRepository.kt @@ -3,6 +3,6 @@ package com.tangem.tap.domain.userWalletList.repository import com.tangem.domain.wallets.models.UserWalletId internal interface SelectedUserWalletRepository { - fun get(): UserWalletId? - fun set(walletId: UserWalletId?) + suspend fun get(): UserWalletId? + suspend fun set(walletId: UserWalletId?) } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/implementation/DefaultSelectedUserWalletRepository.kt b/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/implementation/DefaultSelectedUserWalletRepository.kt index e30816c98c..7a17c85cd9 100644 --- a/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/implementation/DefaultSelectedUserWalletRepository.kt +++ b/app/src/main/java/com/tangem/tap/domain/userWalletList/repository/implementation/DefaultSelectedUserWalletRepository.kt @@ -3,17 +3,20 @@ package com.tangem.tap.domain.userWalletList.repository.implementation import com.tangem.common.services.secure.SecureStorage import com.tangem.domain.wallets.models.UserWalletId import com.tangem.tap.domain.userWalletList.repository.SelectedUserWalletRepository +import com.tangem.utils.coroutines.CoroutineDispatcherProvider +import kotlinx.coroutines.withContext internal class DefaultSelectedUserWalletRepository( private val secureStorage: SecureStorage, + private val dispatchers: CoroutineDispatcherProvider, ) : SelectedUserWalletRepository { - override fun get(): UserWalletId? { - return secureStorage.get(StorageKey.SelectedWalletId.name) + override suspend fun get(): UserWalletId? = withContext(dispatchers.io) { + secureStorage.get(StorageKey.SelectedWalletId.name) ?.decodeToString(throwOnInvalidSequence = true) ?.let { UserWalletId(it) } } - override fun set(walletId: UserWalletId?) { + override suspend fun set(walletId: UserWalletId?) = withContext(dispatchers.io) { if (walletId == null) { secureStorage.delete(StorageKey.SelectedWalletId.name) } else { diff --git a/gradle/tangem_dependencies.toml b/gradle/tangem_dependencies.toml index e7fcfa9113..e8798f7c03 100644 --- a/gradle/tangem_dependencies.toml +++ b/gradle/tangem_dependencies.toml @@ -7,7 +7,7 @@ tangemBlockchainSdk = "releases-5.26.0-1123" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds -tangemCardSdk = "releases-5.26.0-493" +tangemCardSdk = "releases-5.26.0-503" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ tangemVico = "2.0.0-alpha.25-tangem12" #tangemVico = "0.0.1" # Keep it! - used for local builds ^ From 73dfdfe6c113de9829b48e9452a2e71ee74ba0b3 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 22 Jul 2025 20:37:09 +0300 Subject: [PATCH 6/9] Updated on 2026-08-14 --- .../src/main/assets/configs/feature_toggles_config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/config-toggles/src/main/assets/configs/feature_toggles_config.json b/core/config-toggles/src/main/assets/configs/feature_toggles_config.json index 35ffe025b0..7506ce9401 100644 --- a/core/config-toggles/src/main/assets/configs/feature_toggles_config.json +++ b/core/config-toggles/src/main/assets/configs/feature_toggles_config.json @@ -57,7 +57,7 @@ }, { "name": "PUSH_NOTIFICATIONS_ENABLED", - "version": "5.26.1" + "version": "5.26.2" }, { "name": "USEDESK_ENABLED", From 22ba550fa1f6c23999ad8a2c2924140d8926d918 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 23 Jul 2025 13:06:37 +0300 Subject: [PATCH 7/9] Updated on 2026-08-14 --- gradle/tangem_dependencies.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/tangem_dependencies.toml b/gradle/tangem_dependencies.toml index e8798f7c03..c7e9b1485a 100644 --- a/gradle/tangem_dependencies.toml +++ b/gradle/tangem_dependencies.toml @@ -7,7 +7,7 @@ tangemBlockchainSdk = "releases-5.26.0-1123" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds -tangemCardSdk = "releases-5.26.0-503" +tangemCardSdk = "releases-5.26.0-504" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ tangemVico = "2.0.0-alpha.25-tangem12" #tangemVico = "0.0.1" # Keep it! - used for local builds ^ From 59201f9347c628c84ed991d68884a9ad600c8b49 Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 23 Jul 2025 10:06:56 +0000 Subject: [PATCH 8/9] Updated on 2026-08-14 --- gradle/tangem_dependencies.toml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gradle/tangem_dependencies.toml b/gradle/tangem_dependencies.toml index c7e9b1485a..a128712775 100644 --- a/gradle/tangem_dependencies.toml +++ b/gradle/tangem_dependencies.toml @@ -5,12 +5,14 @@ # https://github.com/tangem/tangem-sdk-android/ # https://github.com/tangem/vico -tangemBlockchainSdk = "releases-5.26.0-1123" +tangemBlockchainSdk = "develop-1121" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds -tangemCardSdk = "releases-5.26.0-504" +tangemCardSdk = "develop-501" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ tangemVico = "2.0.0-alpha.25-tangem12" #tangemVico = "0.0.1" # Keep it! - used for local builds ^ +tangemHotSdk = "develop-441" +#tangemHotSdk = "0.0.1" # Keep it! - used for local builds ^ @@ -18,6 +20,8 @@ tangemVico = "2.0.0-alpha.25-tangem12" blockchain = { module = "com.tangem:blockchain", version.ref = "tangemBlockchainSdk" } card-android = { module = "com.tangem.tangem-sdk-kotlin:android", version.ref = "tangemCardSdk" } card-core = { module = "com.tangem.tangem-sdk-kotlin:core", version.ref = "tangemCardSdk" } +hot-core = { module = "com.tangem.tangem-hot-sdk-kotlin:core", version.ref = "tangemHotSdk" } +hot-android = { module = "com.tangem.tangem-hot-sdk-kotlin:android", version.ref = "tangemHotSdk" } vico-compose = { group = "com.tangem.vico", name = "compose", version.ref = "tangemVico" } vico-compose-m3 = { group = "com.tangem.vico", name = "compose-m3", version.ref = "tangemVico" } From c1573b0b9a06c46d528ae00a00b044641584f08a Mon Sep 17 00:00:00 2001 From: Tangem Date: Wed, 23 Jul 2025 15:01:37 +0300 Subject: [PATCH 9/9] Updated on 2026-08-14 --- gradle/tangem_dependencies.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/tangem_dependencies.toml b/gradle/tangem_dependencies.toml index a128712775..7ddc21bb14 100644 --- a/gradle/tangem_dependencies.toml +++ b/gradle/tangem_dependencies.toml @@ -5,9 +5,9 @@ # https://github.com/tangem/tangem-sdk-android/ # https://github.com/tangem/vico -tangemBlockchainSdk = "develop-1121" +tangemBlockchainSdk = "develop-1124" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds -tangemCardSdk = "develop-501" +tangemCardSdk = "develop-505" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ tangemVico = "2.0.0-alpha.25-tangem12" #tangemVico = "0.0.1" # Keep it! - used for local builds ^