From a28c0c925f50224af9855fdb5765053c264291a8 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 6 Apr 2021 18:01:05 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../warningMessage/WarningMessagesManager.kt | 12 +++++++ .../redux/middlewares/WarningsMiddleware.kt | 31 +++++++++++++------ .../main/res/values/strings_untranslated.xml | 2 ++ 3 files changed, 35 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/domain/configurable/warningMessage/WarningMessagesManager.kt b/app/src/main/java/com/tangem/tap/domain/configurable/warningMessage/WarningMessagesManager.kt index 1ee151033f..391bbc9b13 100644 --- a/app/src/main/java/com/tangem/tap/domain/configurable/warningMessage/WarningMessagesManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/configurable/warningMessage/WarningMessagesManager.kt @@ -117,5 +117,17 @@ class WarningMessagesManager( fun isAlreadySignedHashesWarning(warning: WarningMessage): Boolean { return warning.messageResId == R.string.alert_card_signed_transactions } + + fun onlineVerificationFailed(): WarningMessage = WarningMessage( + "", + "", + type = WarningMessage.Type.Permanent, + priority = WarningMessage.Priority.Critical, + listOf(WarningMessage.Location.MainScreen), + null, + R.string.warning_failed_to_verify_card_title, + R.string.warning_failed_to_verify_card_message, + WarningMessage.Origin.Local + ) } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WarningsMiddleware.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WarningsMiddleware.kt index a64f722056..ad2c009c9c 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WarningsMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WarningsMiddleware.kt @@ -6,6 +6,7 @@ import com.tangem.blockchain.common.Wallet import com.tangem.blockchain.extensions.SimpleResult import com.tangem.commands.common.card.Card import com.tangem.commands.common.card.CardType +import com.tangem.commands.verifycard.VerifyCardState import com.tangem.common.extensions.getType import com.tangem.tap.common.analytics.AnalyticsEvent import com.tangem.tap.common.analytics.FirebaseAnalyticsHandler @@ -29,16 +30,7 @@ class WarningsMiddleware { fun handle(action: WalletAction.Warnings, globalState: GlobalState?) { when (action) { is WalletAction.Warnings.CheckIfNeeded -> { - val validator = globalState?.scanNoteResponse?.walletManager as? SignatureCountValidator - globalState?.scanNoteResponse?.card?.let { card -> - globalState.warningManager?.removeWarnings(WarningMessage.Origin.Local) - if (card.getType() != CardType.Release) { - addWarningMessage(WarningMessagesManager.devCardWarning()) - } else if (!preferencesStorage.wasCardScannedBefore(card.cardId)) { - checkIfWarningNeeded(card, validator)?.let { addWarningMessage(it) } - } - updateWarningMessages() - } + showCardWarningsIfNeeded(globalState) val readyToShow = preferencesStorage.appRatingLaunchObserver.isReadyToShow() if (readyToShow) addWarningMessage(WarningMessagesManager.appRatingWarning(), true) } @@ -69,6 +61,25 @@ class WarningsMiddleware { } } + private fun showCardWarningsIfNeeded(globalState: GlobalState?) { + val validator = globalState?.scanNoteResponse?.walletManager as? SignatureCountValidator + globalState?.scanNoteResponse?.card?.let { card -> + globalState.warningManager?.removeWarnings(WarningMessage.Origin.Local) + if (card.getType() != CardType.Release) { + addWarningMessage(WarningMessagesManager.devCardWarning()) + } else if (!preferencesStorage.wasCardScannedBefore(card.cardId)) { + checkIfWarningNeeded(card, validator)?.let { addWarningMessage(it) } + } + if (card.getType() == CardType.Release) { + if (globalState.scanNoteResponse.verifyResponse?.verificationState == + VerifyCardState.VerifiedOffline) { + addWarningMessage(WarningMessagesManager.onlineVerificationFailed()) + } + } + updateWarningMessages() + } + } + private fun checkIfWarningNeeded( card: Card, signatureCountValidator: SignatureCountValidator? = null, ): WarningMessage? { diff --git a/app/src/main/res/values/strings_untranslated.xml b/app/src/main/res/values/strings_untranslated.xml index 3e6b22d9c1..860b985336 100644 --- a/app/src/main/res/values/strings_untranslated.xml +++ b/app/src/main/res/values/strings_untranslated.xml @@ -99,6 +99,8 @@ this wallet. + Add tokens + Authenticity check failed + This card might be a production sample or counterfeit