From 85c11a5b80805426a9aabdabe250c59ec8f6e799 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 21 Feb 2023 18:15:57 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../BiometricUserWalletsListManager.kt | 19 ++++++++++++------- .../twins/redux/TwinCardsMiddleware.kt | 15 ++++++++++++++- .../products/twins/ui/TwinsCardsFragment.kt | 2 +- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/domain/userWalletList/implementation/BiometricUserWalletsListManager.kt b/app/src/main/java/com/tangem/tap/domain/userWalletList/implementation/BiometricUserWalletsListManager.kt index 748665ccea..5c5be22e1f 100644 --- a/app/src/main/java/com/tangem/tap/domain/userWalletList/implementation/BiometricUserWalletsListManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/userWalletList/implementation/BiometricUserWalletsListManager.kt @@ -110,21 +110,26 @@ internal class BiometricUserWalletsListManager( } override suspend fun delete(userWalletIds: List): CompletionResult { - 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 }, ) diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/redux/TwinCardsMiddleware.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/redux/TwinCardsMiddleware.kt index 1e1d7fac47..1f77d2ae6f 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/redux/TwinCardsMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/redux/TwinCardsMiddleware.kt @@ -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 + } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/ui/TwinsCardsFragment.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/ui/TwinsCardsFragment.kt index dbc7e3672d..f471878c85 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/ui/TwinsCardsFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/ui/TwinsCardsFragment.kt @@ -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