diff --git a/app/src/main/java/com/tangem/tap/domain/tasks/CreateWalletAndRescanTask.kt b/app/src/main/java/com/tangem/tap/domain/tasks/CreateWalletAndRescanTask.kt index cc539e426e..0af8e1f29b 100644 --- a/app/src/main/java/com/tangem/tap/domain/tasks/CreateWalletAndRescanTask.kt +++ b/app/src/main/java/com/tangem/tap/domain/tasks/CreateWalletAndRescanTask.kt @@ -2,17 +2,24 @@ package com.tangem.tap.domain.tasks import com.tangem.CardSession import com.tangem.CardSessionRunnable -import com.tangem.commands.CreateWalletCommand +import com.tangem.commands.ReadCommand import com.tangem.common.CompletionResult +import com.tangem.tasks.CreateWalletTask class CreateWalletAndRescanTask : CardSessionRunnable { override val requiresPin2 = false override fun run(session: CardSession, callback: (result: CompletionResult) -> Unit) { - CreateWalletCommand().run(session) { result -> + CreateWalletTask().run(session) { result -> when (result) { - is CompletionResult.Success -> ScanNoteTask().run(session, callback) - + is CompletionResult.Success -> { + ReadCommand().run(session) { readResult -> + when (readResult) { + is CompletionResult.Success -> ScanNoteTask(readResult.data).run(session, callback) + is CompletionResult.Failure -> callback(CompletionResult.Failure(readResult.error)) + } + } + } is CompletionResult.Failure -> callback(CompletionResult.Failure(result.error)) } } diff --git a/app/src/main/java/com/tangem/tap/domain/tasks/ScanNoteTask.kt b/app/src/main/java/com/tangem/tap/domain/tasks/ScanNoteTask.kt index e733a18b30..d773a34f8a 100644 --- a/app/src/main/java/com/tangem/tap/domain/tasks/ScanNoteTask.kt +++ b/app/src/main/java/com/tangem/tap/domain/tasks/ScanNoteTask.kt @@ -18,7 +18,7 @@ data class ScanNoteResponse( val verifyResponse: VerifyCardResponse? = null ) : CommandResponse -class ScanNoteTask : CardSessionRunnable { +class ScanNoteTask(val card: Card? = null) : CardSessionRunnable { override val requiresPin2 = false override fun run(session: CardSession, callback: (result: CompletionResult) -> Unit) { @@ -27,7 +27,8 @@ class ScanNoteTask : CardSessionRunnable { is CompletionResult.Failure -> callback(CompletionResult.Failure(result.error)) is CompletionResult.Success -> { - val card = result.data + val card = this.card ?: result.data + val walletManager = try { WalletManagerFactory.makeWalletManager(card) } catch (exception: Exception) { @@ -49,14 +50,4 @@ class ScanNoteTask : CardSessionRunnable { } } } -} - -fun Card?.toScanNoteCompletionResult(): CompletionResult { - this ?: return CompletionResult.Failure(TangemSdkError.CardError()) - val walletManager = try { - WalletManagerFactory.makeWalletManager(this) - } catch (exception: Exception) { - return CompletionResult.Success(ScanNoteResponse(null, this)) - } - return CompletionResult.Success(ScanNoteResponse(walletManager, this)) } \ No newline at end of file