diff --git a/app/src/main/java/com/tangem/tap/features/saveWallet/redux/SaveWalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/saveWallet/redux/SaveWalletMiddleware.kt index a8fc4365aa..ec2223b2bd 100644 --- a/app/src/main/java/com/tangem/tap/features/saveWallet/redux/SaveWalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/saveWallet/redux/SaveWalletMiddleware.kt @@ -120,9 +120,16 @@ internal class SaveWalletMiddleware { ) } + val savedUserWallet = userWalletsListManager.selectedUserWalletSync.guard { + Timber.e("User wallet is not saved") + return@launch + } store.dispatchWithMain(SaveWalletAction.Save.Success) store.dispatchWithMain(NavigationAction.PopBackTo(AppScreen.Wallet)) store.dispatchWithMain(WalletAction.UpdateCanSaveUserWallets(canSaveUserWallets = true)) + store.dispatchWithMain( + action = WalletAction.MultiWallet.CheckForBackupWarning(savedUserWallet.scanResponse.card), + ) } } } diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletAction.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletAction.kt index ca74064ba7..db13376244 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletAction.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletAction.kt @@ -5,6 +5,7 @@ import com.tangem.blockchain.common.Amount import com.tangem.blockchain.common.address.AddressType import com.tangem.core.analytics.AnalyticsEvent import com.tangem.domain.common.util.UserWalletId +import com.tangem.domain.models.scan.CardDTO import com.tangem.tap.common.entities.FiatCurrency import com.tangem.tap.common.redux.NotificationAction import com.tangem.tap.domain.TapError @@ -41,6 +42,13 @@ sealed class WalletAction : Action { object BackupWallet : MultiWallet() data class AddMissingDerivations(val blockchains: List) : MultiWallet() object ScanToGetDerivations : MultiWallet() + + /** + * Display warning if card has no backup + * + * @param card card to check status + * */ + data class CheckForBackupWarning(val card: CardDTO) : MultiWallet() } sealed class Warnings : WalletAction() { diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/MultiWalletReducer.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/MultiWalletReducer.kt index 7432f3fc41..a0bc33e948 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/MultiWalletReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/MultiWalletReducer.kt @@ -1,5 +1,6 @@ package com.tangem.tap.features.wallet.redux.reducers +import com.tangem.domain.models.scan.CardDTO import com.tangem.tap.features.wallet.redux.ProgressState import com.tangem.tap.features.wallet.redux.WalletAction import com.tangem.tap.features.wallet.redux.WalletState @@ -11,12 +12,19 @@ class MultiWalletReducer { is WalletAction.MultiWallet.SelectWallet -> { state.copy(selectedCurrency = action.currency) } + is WalletAction.MultiWallet.TryToRemoveWallet -> state is WalletAction.MultiWallet.AddMissingDerivations -> state.copy( missingDerivations = action.blockchains, ) + is WalletAction.MultiWallet.BackupWallet -> state is WalletAction.MultiWallet.ScanToGetDerivations -> state.copy(state = ProgressState.Loading) + is WalletAction.MultiWallet.CheckForBackupWarning -> state.copy( + showBackupWarning = action.card.settings.isBackupAllowed && + action.card.backupStatus == CardDTO.BackupStatus.NoBackup, + ) + else -> state } }