diff --git a/app/src/main/java/com/tangem/tap/common/DialogManager.kt b/app/src/main/java/com/tangem/tap/common/DialogManager.kt index 3ea0d68a89..a7da950412 100644 --- a/app/src/main/java/com/tangem/tap/common/DialogManager.kt +++ b/app/src/main/java/com/tangem/tap/common/DialogManager.kt @@ -120,6 +120,7 @@ class DialogManager : StoreSubscriber { onReject = state.dialog.onReject, ) } + is BackupDialog.AttestationFailed -> AttestationFailedDialog.create(context) is BackupDialog.AddMoreBackupCards -> AddMoreBackupCardsDialog.create(context) is BackupDialog.BackupInProgress -> BackupInProgressDialog.create(context) is BackupDialog.UnfinishedBackupFound -> UnfinishedBackupFoundDialog.create(context) diff --git a/app/src/main/java/com/tangem/tap/domain/tasks/product/CreateProductWalletTask.kt b/app/src/main/java/com/tangem/tap/domain/tasks/product/CreateProductWalletTask.kt index 3035af9295..48e5ed9a7a 100644 --- a/app/src/main/java/com/tangem/tap/domain/tasks/product/CreateProductWalletTask.kt +++ b/app/src/main/java/com/tangem/tap/domain/tasks/product/CreateProductWalletTask.kt @@ -21,7 +21,7 @@ import com.tangem.domain.models.scan.CardDTO import com.tangem.domain.models.scan.KeyWalletPublicKey import com.tangem.operations.CommandResponse import com.tangem.operations.backup.PrimaryCard -import com.tangem.operations.backup.StartPrimaryCardLinkingTask +import com.tangem.operations.backup.StartPrimaryCardLinkingCommand import com.tangem.operations.derivation.DeriveMultipleWalletPublicKeysTask import com.tangem.operations.derivation.ExtendedPublicKeysMap import com.tangem.operations.wallet.CreateWalletTask @@ -210,7 +210,7 @@ private class CreateWalletTangemWallet( session: CardSession, callback: (result: CompletionResult) -> Unit, ) { - StartPrimaryCardLinkingTask().run(session) { result -> + StartPrimaryCardLinkingCommand().run(session) { result -> when (result) { is CompletionResult.Success -> { primaryCard = result.data diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt index 3c9e6ede86..bae2e62550 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt @@ -373,17 +373,22 @@ private fun handleBackupAction(appState: () -> AppState?, action: BackupAction) } is CompletionResult.Failure -> { - val error = result.error - if (error is TangemSdkError.BackupFailedNotEmptyWallets && - // todo disabled this check in task with shiba ([REDACTED_TASK_KEY]) and added canSkipBackup - // && onboardingWalletState.wallet2State != null - card?.canSkipBackup == false - ) { - store.dispatchOnMain( - GlobalAction.ShowDialog( - BackupDialog.ResetBackupCard(error.cardId), - ), - ) + when (val error = result.error) { + is TangemSdkError.BackupFailedNotEmptyWallets -> { + if (card?.canSkipBackup == false) { + store.dispatchOnMain( + GlobalAction.ShowDialog( + BackupDialog.ResetBackupCard(error.cardId), + ), + ) + } + } + is TangemSdkError.IssuerSignatureLoadingFailed -> { + store.dispatchOnMain( + GlobalAction.ShowDialog(BackupDialog.AttestationFailed), + ) + } + else -> Unit } } } diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletState.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletState.kt index 757196999f..508e40db10 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletState.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletState.kt @@ -90,6 +90,7 @@ sealed class BackupStep { } sealed class BackupDialog : StateDialog { + object AttestationFailed : BackupDialog() object AddMoreBackupCards : BackupDialog() object BackupInProgress : BackupDialog() object UnfinishedBackupFound : BackupDialog() diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/dialogs/AttestationFailedDialog.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/dialogs/AttestationFailedDialog.kt new file mode 100644 index 0000000000..ef9363f8a0 --- /dev/null +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/dialogs/AttestationFailedDialog.kt @@ -0,0 +1,24 @@ +package com.tangem.tap.features.onboarding.products.wallet.ui.dialogs + +import android.content.Context +import androidx.appcompat.app.AlertDialog +import com.google.android.material.dialog.MaterialAlertDialogBuilder +import com.tangem.tap.common.redux.global.GlobalAction +import com.tangem.tap.store +import com.tangem.wallet.R + +internal object AttestationFailedDialog { + + fun create(context: Context): AlertDialog { + return MaterialAlertDialogBuilder(context, R.style.CustomMaterialDialog).apply { + setTitle(R.string.attestation_online_failed_title) + setMessage(R.string.attestation_online_failed_body) + setPositiveButton(R.string.ok) { dialog, _ -> + dialog.dismiss() + } + setOnDismissListener { + store.dispatch(GlobalAction.HideDialog) + } + }.create() + } +} \ No newline at end of file diff --git a/gradle/dependencies.toml b/gradle/dependencies.toml index 73b302dd05..2daf4d4322 100644 --- a/gradle/dependencies.toml +++ b/gradle/dependencies.toml @@ -87,7 +87,7 @@ spr-client = "3.6.2" # region Tangem tangemBlockchainSdk = "develop-444" #tangemBlockchainSdk = "0.0.1" # Keep it! - used for local builds -tangemCardSdk = "develop-317" +tangemCardSdk = "develop-318" #tangemCardSdk = "0.0.1" # Keep it! - used for local builds ^ # endregion Tangem