From 73f5f83b97886d7ee1ca42a313131bf883ab9307 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 24 Feb 2025 09:31:32 +0200 Subject: [PATCH] Updated on 2026-08-14 --- .../auth/DefaultExpressAuthProvider.kt | 28 +++++++++++++++++-- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/network/auth/DefaultExpressAuthProvider.kt b/app/src/main/java/com/tangem/tap/network/auth/DefaultExpressAuthProvider.kt index 7331b9f95c..452b90127d 100644 --- a/app/src/main/java/com/tangem/tap/network/auth/DefaultExpressAuthProvider.kt +++ b/app/src/main/java/com/tangem/tap/network/auth/DefaultExpressAuthProvider.kt @@ -4,6 +4,7 @@ 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.userwallet.UserWalletsStore +import com.tangem.domain.wallets.models.UserWallet import com.tangem.lib.auth.ExpressAuthProvider import kotlinx.coroutines.runBlocking import java.util.UUID @@ -25,6 +26,17 @@ internal class DefaultExpressAuthProvider( } override fun getRefCode(): String { + val selectedUserWallet = userWalletsStore.selectedUserWalletOrNull ?: error("Can not get selected user wallet") + + return when { + isRing(selectedUserWallet) -> "ring" + isChangeNow(selectedUserWallet) -> "ChangeNow" + isPartner(selectedUserWallet) -> "partner" + else -> "" + } + } + + private fun isRing(selectedUserWallet: UserWallet): Boolean { val addedWalletsWithRings = runBlocking { appPreferencesStore.getSyncOrDefault( key = PreferencesKeys.ADDED_WALLETS_WITH_RING_KEY, @@ -32,9 +44,19 @@ internal class DefaultExpressAuthProvider( ) } - val userWalletId = userWalletsStore.selectedUserWalletOrNull?.walletId?.stringValue - ?: error("No user id provided") + return addedWalletsWithRings.contains(selectedUserWallet.walletId.stringValue) + } - return if (addedWalletsWithRings.contains(userWalletId)) "ring" else "" + private fun isChangeNow(selectedUserWallet: UserWallet): Boolean { + return selectedUserWallet.scanResponse.card.batchId == BATCH_ID_CHANGENOW + } + + private fun isPartner(selectedUserWallet: UserWallet): Boolean { + return selectedUserWallet.scanResponse.card.batchId == BATCH_ID_PARTNER + } + + private companion object { + const val BATCH_ID_CHANGENOW = "BB000013" + const val BATCH_ID_PARTNER = "AF990015" } } \ No newline at end of file