diff --git a/app/src/main/java/com/tangem/tap/domain/TangemSdkManager.kt b/app/src/main/java/com/tangem/tap/domain/TangemSdkManager.kt index 51c1cea33a..81ddf880c3 100644 --- a/app/src/main/java/com/tangem/tap/domain/TangemSdkManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/TangemSdkManager.kt @@ -208,7 +208,7 @@ class TangemSdkManager(private val tangemSdk: TangemSdk, private val context: Co } fun getString(@StringRes stringResId: Int, vararg formatArgs: Any?): String { - return context.getString(stringResId, formatArgs) + return context.getString(stringResId, *formatArgs) } fun setAccessCodeRequestPolicy( diff --git a/app/src/main/java/com/tangem/tap/domain/twins/CreateFirstTwinWalletTask.kt b/app/src/main/java/com/tangem/tap/domain/twins/CreateFirstTwinWalletTask.kt index d812507524..ae9a72152a 100644 --- a/app/src/main/java/com/tangem/tap/domain/twins/CreateFirstTwinWalletTask.kt +++ b/app/src/main/java/com/tangem/tap/domain/twins/CreateFirstTwinWalletTask.kt @@ -4,13 +4,12 @@ import com.tangem.common.CompletionResult import com.tangem.common.card.EllipticCurve import com.tangem.common.core.CardSession import com.tangem.common.core.CardSessionRunnable -import com.tangem.domain.common.TwinCardNumber import com.tangem.domain.common.TwinsHelper import com.tangem.operations.wallet.CreateWalletResponse import com.tangem.operations.wallet.CreateWalletTask import com.tangem.operations.wallet.PurgeWalletCommand -class CreateFirstTwinWalletTask : CardSessionRunnable { +class CreateFirstTwinWalletTask(private val firstCardId: String) : CardSessionRunnable { override fun run( session: CardSession, callback: (result: CompletionResult) -> Unit, @@ -18,8 +17,11 @@ class CreateFirstTwinWalletTask : CardSessionRunnable { val card = session.environment.card val publicKey = card?.wallets?.firstOrNull()?.publicKey if (publicKey != null) { - if (TwinsHelper.getTwinCardNumber(card.cardId) == TwinCardNumber.Second) { - callback(CompletionResult.Failure(WrongTwinCard(TwinCardNumber.First))) + val requiredTwinCardNumber = TwinsHelper.getTwinCardNumber(firstCardId) + if (requiredTwinCardNumber != TwinsHelper.getTwinCardNumber(card.cardId)) { + requiredTwinCardNumber?.let { + callback(CompletionResult.Failure(WrongTwinCard(it))) + } return } diff --git a/app/src/main/java/com/tangem/tap/domain/twins/CreateSecondTwinWalletTask.kt b/app/src/main/java/com/tangem/tap/domain/twins/CreateSecondTwinWalletTask.kt index 8950bc0a02..57b66d7a62 100644 --- a/app/src/main/java/com/tangem/tap/domain/twins/CreateSecondTwinWalletTask.kt +++ b/app/src/main/java/com/tangem/tap/domain/twins/CreateSecondTwinWalletTask.kt @@ -7,7 +7,6 @@ import com.tangem.common.card.EllipticCurve import com.tangem.common.core.CardSession import com.tangem.common.core.CardSessionRunnable import com.tangem.common.extensions.hexToBytes -import com.tangem.domain.common.TwinCardNumber import com.tangem.domain.common.TwinsHelper import com.tangem.operations.wallet.CreateWalletResponse import com.tangem.operations.wallet.CreateWalletTask @@ -15,6 +14,7 @@ import com.tangem.operations.wallet.PurgeWalletCommand class CreateSecondTwinWalletTask( private val firstPublicKey: String, + private val firstCardId: String, private val issuerKeys: KeyPair, private val preparingMessage: Message, private val creatingWalletMessage: Message, @@ -24,8 +24,11 @@ class CreateSecondTwinWalletTask( val card = session.environment.card val publicKey = card?.wallets?.firstOrNull()?.publicKey if (publicKey != null) { - if (TwinsHelper.getTwinCardNumber(card.cardId) == TwinCardNumber.First) { - callback(CompletionResult.Failure(WrongTwinCard(TwinCardNumber.Second))) + val currentTwinCardNumber = TwinsHelper.getTwinCardNumber(card.cardId) + if (TwinsHelper.getTwinCardNumber(firstCardId) == currentTwinCardNumber) { + currentTwinCardNumber?.pairNumber()?.let { + callback(CompletionResult.Failure(WrongTwinCard(it))) + } return } diff --git a/app/src/main/java/com/tangem/tap/domain/twins/TwinCardsManager.kt b/app/src/main/java/com/tangem/tap/domain/twins/TwinCardsManager.kt index 7917ddaa07..8310047019 100644 --- a/app/src/main/java/com/tangem/tap/domain/twins/TwinCardsManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/twins/TwinCardsManager.kt @@ -8,9 +8,9 @@ import com.tangem.common.CompletionResult import com.tangem.common.KeyPair import com.tangem.common.extensions.hexToBytes import com.tangem.common.extensions.toHexString +import com.tangem.datasource.api.common.MoshiConverter import com.tangem.domain.common.CardDTO import com.tangem.domain.common.ScanResponse -import com.tangem.datasource.api.common.MoshiConverter import com.tangem.operations.wallet.CreateWalletResponse import com.tangem.tap.common.AssetReader import com.tangem.tap.tangemSdkManager @@ -30,7 +30,7 @@ class TwinCardsManager( suspend fun createFirstWallet(message: Message): CompletionResult { val response = tangemSdkManager.runTaskAsync( - runnable = CreateFirstTwinWalletTask(), + runnable = CreateFirstTwinWalletTask(firstCardId), cardId = firstCardId, initialMessage = message, ) @@ -48,6 +48,7 @@ class TwinCardsManager( ): CompletionResult { val task = CreateSecondTwinWalletTask( firstPublicKey = currentCardPublicKey!!, + firstCardId = firstCardId, issuerKeys = issuerKeyPair, preparingMessage = preparingMessage, creatingWalletMessage = creatingWalletMessage,