From aca774503167658c65d2bc1908dde2a1ff14eac7 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 6 Mar 2026 10:43:42 +0200 Subject: [PATCH 1/5] 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 5f2038f91c..42d7ab858c 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 = "releases-5.34-1430" +tangemBlockchainSdk = "releases-5.35-1442" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds -tangemCardSdk = "develop-582" +tangemCardSdk = "releases-5.35-589" #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 02c11f91fda12c61ae7007131861773374248f08 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 6 Mar 2026 12:29:33 +0400 Subject: [PATCH 2/5] Updated on 2026-08-14 --- .../fetcher/DefaultWalletAccountsFetcher.kt | 25 +++++++++++++++++-- .../tokens/UserTokensBackwardCompatibility.kt | 17 ++++++++++++- 2 files changed, 39 insertions(+), 3 deletions(-) diff --git a/data/account/src/main/kotlin/com/tangem/data/account/fetcher/DefaultWalletAccountsFetcher.kt b/data/account/src/main/kotlin/com/tangem/data/account/fetcher/DefaultWalletAccountsFetcher.kt index b75e956b6e..f7901863e9 100644 --- a/data/account/src/main/kotlin/com/tangem/data/account/fetcher/DefaultWalletAccountsFetcher.kt +++ b/data/account/src/main/kotlin/com/tangem/data/account/fetcher/DefaultWalletAccountsFetcher.kt @@ -10,6 +10,7 @@ import com.tangem.data.common.account.WalletAccountsSaver import com.tangem.data.common.api.safeApiCall import com.tangem.data.common.cache.etag.ETagsStore import com.tangem.data.common.currency.UserTokensSaver +import com.tangem.data.common.tokens.UserTokensBackwardCompatibility import com.tangem.datasource.api.common.response.ApiResponse import com.tangem.datasource.api.common.response.ApiResponseError.HttpException.Code import com.tangem.datasource.api.common.response.ETAG_HEADER @@ -56,6 +57,8 @@ internal class DefaultWalletAccountsFetcher @Inject constructor( private val mainAccountTokensMigration: DefaultMainAccountTokensMigration, ) : WalletAccountsFetcher, WalletAccountsSaver { + private val userTokensBackwardCompatibility = UserTokensBackwardCompatibility() + override suspend fun fetch(userWalletId: UserWalletId): GetWalletAccountsResponse { val savedAccountsResponse = getAccountsResponseStore(userWalletId = userWalletId).getSyncOrNull() val fetchResult = fetchWalletAccounts(userWalletId, savedAccountsResponse) @@ -90,7 +93,7 @@ internal class DefaultWalletAccountsFetcher @Inject constructor( override suspend fun store(userWalletId: UserWalletId, response: GetWalletAccountsResponse) { val store = getAccountsResponseStore(userWalletId = userWalletId) - store.updateData { response } + store.updateData { response.applyTokensCompatibility() } } override suspend fun update( @@ -99,7 +102,9 @@ internal class DefaultWalletAccountsFetcher @Inject constructor( ) { val store = getAccountsResponseStore(userWalletId = userWalletId) - store.updateData { transform(it) } + store.updateData { + transform(it).applyTokensCompatibility() + } } override suspend fun push( @@ -272,6 +277,22 @@ internal class DefaultWalletAccountsFetcher @Inject constructor( ) } + private fun GetWalletAccountsResponse?.applyTokensCompatibility(): GetWalletAccountsResponse? { + if (this == null) return null + + return copy( + accounts = accounts.map { accountDTO -> + val tokens = accountDTO.tokens + + if (tokens.isNullOrEmpty()) return@map accountDTO + + accountDTO.copy( + tokens = userTokensBackwardCompatibility.applyCompatibilityAndGetUpdated(tokens), + ) + }, + ) + } + private fun getAccountsResponseStore(userWalletId: UserWalletId): AccountsResponseStore { return accountsResponseStoreFactory.create(userWalletId = userWalletId) } diff --git a/data/common/src/main/kotlin/com/tangem/data/common/tokens/UserTokensBackwardCompatibility.kt b/data/common/src/main/kotlin/com/tangem/data/common/tokens/UserTokensBackwardCompatibility.kt index 54e69b23a1..f9c12f4d03 100644 --- a/data/common/src/main/kotlin/com/tangem/data/common/tokens/UserTokensBackwardCompatibility.kt +++ b/data/common/src/main/kotlin/com/tangem/data/common/tokens/UserTokensBackwardCompatibility.kt @@ -9,7 +9,7 @@ import com.tangem.datasource.api.tangemTech.models.UserTokensResponse * Helper to apply compatibility changes for [UserTokensResponse] to support old saved tokens * in new application with new IDs */ -internal class UserTokensBackwardCompatibility { +class UserTokensBackwardCompatibility { fun applyCompatibilityAndGetUpdated(userTokensResponse: UserTokensResponse): UserTokensResponse { return userTokensResponse.copy( @@ -28,6 +28,21 @@ internal class UserTokensBackwardCompatibility { ) } + fun applyCompatibilityAndGetUpdated(tokens: List): List { + return tokens.map { token -> + val oldSavedId = NETWORKS_TO_OLD_SAVED_IDS[token.networkId] + if (oldSavedId != null && token.id == oldSavedId) { + Blockchain.fromNetworkId(token.networkId)?.let { blockchain -> + token.copy( + id = blockchain.toCoinId(), + ) + } ?: token + } else { + token + } + } + } + companion object { private val NETWORKS_TO_OLD_SAVED_IDS = mapOf( "optimistic-ethereum" to "ethereum", From 126d5f9fb1ea0a667b011ded7b55344613af47db Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 6 Mar 2026 11:48:12 +0200 Subject: [PATCH 3/5] Updated on 2026-08-14 --- app/src/main/assets/tangem-app-config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/assets/tangem-app-config b/app/src/main/assets/tangem-app-config index 03c5310849..827750b5a0 160000 --- a/app/src/main/assets/tangem-app-config +++ b/app/src/main/assets/tangem-app-config @@ -1 +1 @@ -Subproject commit 03c5310849ad8c94948c04f2365ad10d371a017c +Subproject commit 827750b5a0ef7202120b0df0ae903d70e18e3d32 From ac812ea42ae715b8db1938b8162b71f89076ec6b Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 6 Mar 2026 12:24:51 +0300 Subject: [PATCH 4/5] Updated on 2026-08-14 --- .../core/ui/haptic/DefaultHapticManager.kt | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/core/ui/src/main/java/com/tangem/core/ui/haptic/DefaultHapticManager.kt b/core/ui/src/main/java/com/tangem/core/ui/haptic/DefaultHapticManager.kt index 5a34d92702..5e5ec69b89 100644 --- a/core/ui/src/main/java/com/tangem/core/ui/haptic/DefaultHapticManager.kt +++ b/core/ui/src/main/java/com/tangem/core/ui/haptic/DefaultHapticManager.kt @@ -10,11 +10,7 @@ internal class DefaultHapticManager( override fun perform(effect: TangemHapticEffect) { when (effect) { - is TangemHapticEffect.View -> { - effect.androidHapticFeedbackCode?.let { - ViewCompat.performHapticFeedback(view, it) - } - } + is TangemHapticEffect.View -> performViewEffect(effect) is TangemHapticEffect.OneTime -> { if (vibratorHapticManager != null) { vibratorHapticManager.performOneTime(effect) @@ -29,4 +25,20 @@ internal class DefaultHapticManager( } } } + + private fun performViewEffect(effect: TangemHapticEffect.View) { + val code = effect.androidHapticFeedbackCode ?: return + if (ViewCompat.performHapticFeedback(view, code)) return + + val fallbackCode = VIEW_FALLBACKS[effect]?.androidHapticFeedbackCode ?: return + ViewCompat.performHapticFeedback(view, fallbackCode) + } + + private companion object { + val VIEW_FALLBACKS = mapOf( + TangemHapticEffect.View.ClockTick to TangemHapticEffect.View.KeyboardPress, + TangemHapticEffect.View.Confirm to TangemHapticEffect.View.ContextClick, + TangemHapticEffect.View.Reject to TangemHapticEffect.View.LongPress, + ) + } } \ No newline at end of file From 7a7e951f4fc6399c1b690e2f0ad725150b916c21 Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 6 Mar 2026 12:02:03 +0000 Subject: [PATCH 5/5] 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 42d7ab858c..5f2038f91c 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 = "releases-5.35-1442" +tangemBlockchainSdk = "releases-5.34-1430" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds -tangemCardSdk = "releases-5.35-589" +tangemCardSdk = "develop-582" #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 ^