From a16701f7bd052406d8a51e3f6a4dbb2da3fcdfa2 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 7 Dec 2021 22:19:12 +0300 Subject: [PATCH 1/2] Updated on 2026-08-14 --- .../products/wallet/redux/OnboardingWalletAction.kt | 1 + .../products/wallet/redux/OnboardingWalletReducer.kt | 4 ++++ .../products/wallet/ui/OnboardingWalletFragment.kt | 5 ++++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletAction.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletAction.kt index 364f97ce71..f00b5c5273 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletAction.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletAction.kt @@ -51,6 +51,7 @@ sealed class BackupAction : Action { data class SaveFirstAccessCode(val accessCode: String) : BackupAction() object ShowReenterAccessCodeScreen : BackupAction() data class SaveAccessCodeConfirmation(val accessCodeConfirmation: String) : BackupAction() + object OnAccessCodeDialogClosed : BackupAction() data class PrepareToWriteBackupCard(val cardNumber: Int) : BackupAction() data class WriteBackupCard(val cardNumber: Int) : BackupAction() diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletReducer.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletReducer.kt index 8e0c5daac7..1d48365843 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletReducer.kt @@ -107,6 +107,10 @@ class BackupReducer { ) } + BackupAction.OnAccessCodeDialogClosed -> { + state.copy(backupStep = BackupStep.AddBackupCards) + } + BackupAction.WritePrimaryCard -> state is BackupAction.WriteBackupCard -> state is BackupAction.SaveAccessCodeConfirmation -> state diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt index c0cee1429d..dd517f6e3b 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/ui/OnboardingWalletFragment.kt @@ -175,6 +175,9 @@ class OnboardingWalletFragment : Fragment(R.layout.fragment_onboarding_wallet), imv_first_backup_card.show() imv_second_backup_card.show() + accessCodeDialog?.dismiss() + accessCodeDialog = null + layout_buttons_add_cards.show() layout_buttons_common.hide() if (state.backupCardsNumber < state.maxBackupCards) { @@ -218,7 +221,7 @@ class OnboardingWalletFragment : Fragment(R.layout.fragment_onboarding_wallet), dismissWithAnimation = true create() setOnCancelListener { - + store.dispatch(BackupAction.OnAccessCodeDialogClosed) } show() showInfoScreen() From 39c5e5da34ca6eb9d103bfeae4cb1156915d647f Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 7 Dec 2021 22:41:49 +0300 Subject: [PATCH 2/2] Updated on 2026-08-14 --- .../redux/OnboardingWalletMiddleware.kt | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt index d2c733e206..cecbb010c6 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/wallet/redux/OnboardingWalletMiddleware.kt @@ -12,6 +12,7 @@ import com.tangem.tap.common.redux.global.GlobalAction import com.tangem.tap.common.redux.navigation.AppScreen import com.tangem.tap.common.redux.navigation.NavigationAction import com.tangem.tap.domain.extensions.hasWallets +import com.tangem.tap.domain.tasks.product.ScanResponse import com.tangem.tap.features.home.redux.HomeAction import com.tangem.tap.features.home.redux.HomeMiddleware import com.tangem.tap.features.onboarding.products.note.redux.OnboardingNoteAction @@ -98,7 +99,9 @@ private fun handleWalletAction(action: Action) { store.dispatch(NavigationAction.PopBackTo()) store.dispatch(HomeAction.ReadCard) } else { - scope.launch { globalState.tapWalletManager.onCardScanned(scanResponse) } + val backupState = store.state.onboardingWalletState.backupState + val updatedScanResponse = updateScanResponseAfterBackup(scanResponse, backupState) + scope.launch { globalState.tapWalletManager.onCardScanned(updatedScanResponse) } store.dispatchOnMain(NavigationAction.NavigateTo(AppScreen.Wallet)) } } @@ -127,6 +130,21 @@ private fun handleWalletAction(action: Action) { } } +private fun updateScanResponseAfterBackup( + scanResponse: ScanResponse, backupState: BackupState +): ScanResponse { + val card = if (backupState.backupStep == BackupStep.Finished) { + val cardsCount = backupState.backupCardsNumber + 1 + scanResponse.card.copy( + backupStatus = Card.BackupStatus.Active(cardCount = cardsCount), + isAccessCodeSet = true + ) + } else { + scanResponse.card + } + return scanResponse.copy(card = card) +} + class BackupMiddleware { val backupMiddleware: Middleware = { dispatch, state -> { next -> @@ -239,7 +257,6 @@ class BackupMiddleware { store.dispatch(BackupAction.FinishBackup) } } - next(action) } }