Updated on 2026-08-14

This commit is contained in:
Tangem 2023-05-29 14:52:03 +03:00
commit 5cc1aa7ce8
3 changed files with 23 additions and 0 deletions

View file

@ -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),
)
}
}
}

View file

@ -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<BlockchainNetwork>) : 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() {

View file

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