From f2a61f3652a3abd2dd73781b2b9807c5add2642e Mon Sep 17 00:00:00 2001 From: Tangem Date: Fri, 28 Oct 2022 15:32:29 +0500 Subject: [PATCH] Updated on 2026-08-14 --- .../tap/common/extensions/BackupService.kt | 2 +- .../tap/features/home/redux/HomeMiddleware.kt | 28 ++++++++++++++----- .../wallet/redux/OnboardingWalletAction.kt | 8 ------ .../redux/OnboardingWalletMiddleware.kt | 4 +-- 4 files changed, 24 insertions(+), 18 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/common/extensions/BackupService.kt b/app/src/main/java/com/tangem/tap/common/extensions/BackupService.kt index 90610b1620..abe1863c6d 100644 --- a/app/src/main/java/com/tangem/tap/common/extensions/BackupService.kt +++ b/app/src/main/java/com/tangem/tap/common/extensions/BackupService.kt @@ -6,7 +6,7 @@ import com.tangem.operations.backup.BackupService /** [REDACTED_AUTHOR] */ -fun BackupService.primaryCardIsSaltPay(): Boolean { +fun BackupService.primaryCardIsSaltPayVisa(): Boolean { return primaryCardId?.slice(0..3)?.let { SaltPayWorkaround.isVisaBatchId(it) } ?: false diff --git a/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt b/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt index e7be6e2145..8a00ca2287 100644 --- a/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/home/redux/HomeMiddleware.kt @@ -1,11 +1,14 @@ package com.tangem.tap.features.home.redux +import com.tangem.common.card.Card import com.tangem.common.core.TangemError import com.tangem.common.services.Result import com.tangem.domain.common.ScanResponse import com.tangem.domain.common.extensions.withIOContext import com.tangem.domain.common.extensions.withMainContext +import com.tangem.operations.backup.BackupService import com.tangem.tap.DELAY_SDK_DIALOG_CLOSE +import com.tangem.tap.backupService import com.tangem.tap.common.analytics.AnalyticsEventAnOld import com.tangem.tap.common.analytics.AnalyticsParamAnOld import com.tangem.tap.common.analytics.GetCardSourceParamsAnOld @@ -14,6 +17,7 @@ import com.tangem.tap.common.entities.IndeterminateProgressButton import com.tangem.tap.common.extensions.dispatchDialogShow import com.tangem.tap.common.extensions.dispatchOpenUrl import com.tangem.tap.common.extensions.onCardScanned +import com.tangem.tap.common.extensions.primaryCardIsSaltPayVisa import com.tangem.tap.common.postUiDelayBg import com.tangem.tap.common.redux.AppDialog import com.tangem.tap.common.redux.AppState @@ -83,6 +87,7 @@ private fun handleHomeAction(appState: () -> AppState?, action: Action, dispatch onSuccess = { scanResponse -> store.dispatch(HomeAction.ScanInProgress(false)) checkForUnfinishedBackupForSaltPay( + backupService = backupService, scanResponse = scanResponse, nextHandler = { showDisclaimerIfNeed( @@ -115,13 +120,22 @@ private fun handleHomeAction(appState: () -> AppState?, action: Action, dispatch * see BackupAction.CheckForUnfinishedBackup * If user touches card other than Visa SaltPay - show dialog and block next processing */ -private fun checkForUnfinishedBackupForSaltPay(scanResponse: ScanResponse, nextHandler: (ScanResponse) -> Unit) { - if (BackupAction.hasSaltPayUnfinishedBackup()) { - if (scanResponse.isSaltPayVisa()) { - nextHandler(scanResponse) - } else { - showSaltPayTapVisaLogoCardDialog() - } +private fun checkForUnfinishedBackupForSaltPay( + backupService: BackupService, + scanResponse: ScanResponse, + nextHandler: (ScanResponse) -> Unit, +) { + if (!backupService.hasIncompletedBackup || !backupService.primaryCardIsSaltPayVisa()) { + nextHandler(scanResponse) + return + } + + fun isTheSamePrimaryCard(card: Card): Boolean { + return backupService.primaryCardId?.let { it == card.cardId } ?: false + } + + if (scanResponse.isSaltPayWallet() || !isTheSamePrimaryCard(scanResponse.card)) { + showSaltPayTapVisaLogoCardDialog() } else { nextHandler(scanResponse) } 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 0de2a90471..885f57fa99 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 @@ -1,8 +1,6 @@ package com.tangem.tap.features.onboarding.products.wallet.redux import android.graphics.Bitmap -import com.tangem.tap.backupService -import com.tangem.tap.common.extensions.primaryCardIsSaltPay import org.rekotlin.Action sealed class OnboardingWalletAction : Action { @@ -71,10 +69,4 @@ sealed class BackupAction : Action { object DiscardBackup : BackupAction() object DiscardSavedBackup : BackupAction() object ResumeFoundUnfinishedBackup : BackupAction() - - companion object { - fun hasSaltPayUnfinishedBackup(): Boolean { - return backupService.hasIncompletedBackup && backupService.primaryCardIsSaltPay() - } - } } \ No newline at end of file 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 48e9c32f2f..8438c8b760 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 @@ -9,7 +9,7 @@ import com.tangem.operations.backup.BackupService import com.tangem.tap.backupService import com.tangem.tap.common.extensions.dispatchDialogShow import com.tangem.tap.common.extensions.dispatchOnMain -import com.tangem.tap.common.extensions.primaryCardIsSaltPay +import com.tangem.tap.common.extensions.primaryCardIsSaltPayVisa import com.tangem.tap.common.redux.AppState import com.tangem.tap.common.redux.global.GlobalAction import com.tangem.tap.common.redux.navigation.AppScreen @@ -324,7 +324,7 @@ private fun handleBackupAction(appState: () -> AppState?, action: BackupAction) backupService.discardSavedBackup() } is BackupAction.CheckForUnfinishedBackup -> { - if (backupService.hasIncompletedBackup && !backupService.primaryCardIsSaltPay()) { + if (backupService.hasIncompletedBackup && !backupService.primaryCardIsSaltPayVisa()) { store.dispatch(GlobalAction.ShowDialog(BackupDialog.UnfinishedBackupFound)) } }