Updated on 2026-08-14
This commit is contained in:
parent
300dc35bdb
commit
85c11a5b80
3 changed files with 27 additions and 9 deletions
|
|
@ -110,21 +110,26 @@ internal class BiometricUserWalletsListManager(
|
|||
}
|
||||
|
||||
override suspend fun delete(userWalletIds: List<UserWalletId>): CompletionResult<Unit> {
|
||||
if (userWalletIds.isEmpty()) {
|
||||
val idsToRemove = state.value.userWallets
|
||||
.takeIf { it.isNotEmpty() }
|
||||
?.filter { it.walletId in userWalletIds }
|
||||
?.map { it.walletId }
|
||||
|
||||
if (idsToRemove.isNullOrEmpty()) {
|
||||
return CompletionResult.Success(Unit)
|
||||
}
|
||||
|
||||
changeSelectedUserWalletIdIfNeeded(userWalletIds)
|
||||
changeSelectedUserWalletIdIfNeeded(idsToRemove)
|
||||
|
||||
return sensitiveInformationRepository.delete(userWalletIds)
|
||||
.flatMap { publicInformationRepository.delete(userWalletIds) }
|
||||
.flatMap { keysRepository.delete(userWalletIds) }
|
||||
return sensitiveInformationRepository.delete(idsToRemove)
|
||||
.flatMap { publicInformationRepository.delete(idsToRemove) }
|
||||
.flatMap { keysRepository.delete(idsToRemove) }
|
||||
.map {
|
||||
state.update { prevState ->
|
||||
val newUserWallets = prevState.userWallets.filter { it.walletId !in userWalletIds }
|
||||
val newUserWallets = prevState.userWallets.filter { it.walletId !in idsToRemove }
|
||||
|
||||
prevState.copy(
|
||||
encryptionKeys = prevState.encryptionKeys.filter { it.walletId !in userWalletIds },
|
||||
encryptionKeys = prevState.encryptionKeys.filter { it.walletId !in idsToRemove },
|
||||
userWallets = newUserWallets,
|
||||
isLocked = newUserWallets.any { it.isLocked },
|
||||
)
|
||||
|
|
|
|||
|
|
@ -322,8 +322,9 @@ private fun handle(action: Action, dispatch: DispatchFunction) {
|
|||
|
||||
OnboardingHelper.onInterrupted()
|
||||
store.dispatch(TwinCardsAction.CardsManager.Release)
|
||||
|
||||
action.shouldResetTwinCardsWidget(shouldReturnCardBack) {
|
||||
store.dispatch(NavigationAction.PopBackTo(AppScreen.Home))
|
||||
store.dispatchOnMain(NavigationAction.PopBackTo(getPopBackScreen()))
|
||||
}
|
||||
}
|
||||
store.dispatchDialogShow(OnboardingDialog.InterruptOnboarding(onOkCallback))
|
||||
|
|
@ -331,4 +332,16 @@ private fun handle(action: Action, dispatch: DispatchFunction) {
|
|||
}
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
|
||||
private fun getPopBackScreen(): AppScreen {
|
||||
return if (userWalletsListManager.hasSavedUserWallets) {
|
||||
if (userWalletsListManager.isLockedSync) {
|
||||
AppScreen.Welcome
|
||||
} else {
|
||||
AppScreen.Wallet
|
||||
}
|
||||
} else {
|
||||
AppScreen.Home
|
||||
}
|
||||
}
|
||||
|
|
@ -15,10 +15,10 @@ import com.tangem.blockchain.common.Blockchain
|
|||
import com.tangem.common.extensions.VoidCallback
|
||||
import com.tangem.core.analytics.Analytics
|
||||
import com.tangem.core.ui.fragments.setStatusBarColor
|
||||
import com.tangem.datasource.utils.AndroidAssetReader
|
||||
import com.tangem.domain.common.ScanResponse
|
||||
import com.tangem.domain.common.TwinCardNumber
|
||||
import com.tangem.tangem_sdk_new.ui.widget.leapfrogWidget.LeapfrogWidget
|
||||
import com.tangem.datasource.utils.AndroidAssetReader
|
||||
import com.tangem.tap.common.analytics.events.Onboarding
|
||||
import com.tangem.tap.common.extensions.beginDelayedTransition
|
||||
import com.tangem.tap.common.extensions.getDrawableCompat
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue