Updated on 2026-08-14

This commit is contained in:
Tangem 2025-02-24 09:31:32 +02:00
parent a61cb65789
commit 73f5f83b97

View file

@ -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"
}
}