Updated on 2026-08-14

This commit is contained in:
Tangem 2023-02-21 18:15:57 +03:00
parent 300dc35bdb
commit 85c11a5b80
3 changed files with 27 additions and 9 deletions

View file

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

View file

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

View file

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