From 8c7f2b3d07d1a19fe0fd50be20602b62241d84cb Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 21 Jun 2021 16:48:43 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../java/com/tangem/tap/domain/TapWalletManager.kt | 4 ++-- .../java/com/tangem/tap/domain/TapWorkarounds.kt | 13 +++++++------ .../tap/features/details/redux/DetailsReducer.kt | 4 ++-- .../tangem/tap/features/feedback/FeedbackManager.kt | 8 +++++++- .../send/redux/middlewares/SendMiddleware.kt | 4 ++-- 5 files changed, 20 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt b/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt index 357db63124..acdc924fd4 100644 --- a/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt @@ -9,6 +9,7 @@ import com.tangem.tap.common.analytics.FirebaseAnalyticsHandler import com.tangem.tap.common.redux.global.FiatCurrencyName import com.tangem.tap.common.redux.global.GlobalAction import com.tangem.tap.currenciesRepository +import com.tangem.tap.domain.TapWorkarounds.isStart2Coin import com.tangem.tap.domain.configurable.config.ConfigManager import com.tangem.tap.domain.extensions.* import com.tangem.tap.domain.tasks.ScanNoteResponse @@ -89,7 +90,6 @@ class TapWalletManager { if (addAnalyticsEvent) { FirebaseAnalyticsHandler.triggerEvent(AnalyticsEvent.CARD_IS_SCANNED, data.card) } - TapWorkarounds.updateCard(data.card) store.state.globalState.feedbackManager?.infoHolder?.setCardInfo(data.card) updateConfigManager(data) @@ -119,7 +119,7 @@ class TapWalletManager { private fun updateConfigManager(data: ScanNoteResponse) { val configManager = store.state.globalState.configManager val blockchain = data.card.getBlockchain() - if (TapWorkarounds.isStart2Coin) { + if (data.card.isStart2Coin) { configManager?.turnOff(ConfigManager.isSendingToPayIdEnabled) configManager?.turnOff(ConfigManager.isTopUpEnabled) } else if (blockchain == Blockchain.Bitcoin diff --git a/app/src/main/java/com/tangem/tap/domain/TapWorkarounds.kt b/app/src/main/java/com/tangem/tap/domain/TapWorkarounds.kt index ace735abd2..5807bd024e 100644 --- a/app/src/main/java/com/tangem/tap/domain/TapWorkarounds.kt +++ b/app/src/main/java/com/tangem/tap/domain/TapWorkarounds.kt @@ -3,18 +3,19 @@ package com.tangem.tap.domain import com.tangem.commands.common.card.Card import com.tangem.commands.common.card.EllipticCurve import com.tangem.commands.common.card.masks.Product +import com.tangem.tap.domain.TapWorkarounds.isStart2Coin import com.tangem.tap.domain.extensions.getSingleWallet import java.util.* object TapWorkarounds { - var isStart2Coin: Boolean = false - private set - - fun updateCard(card: Card) { - isStart2Coin = card.cardData?.issuerName?.toLowerCase(Locale.US) == START_2_COIN_ISSUER + fun isStart2CoinIssuer(cardIssuer: String?): Boolean { + return cardIssuer?.toLowerCase(Locale.US) == START_2_COIN_ISSUER } + val Card.isStart2Coin: Boolean + get() = isStart2CoinIssuer(cardData?.issuerName) + fun Card.isExcluded(): Boolean { val cardData = this.cardData ?: return false val productMask = cardData.productMask @@ -43,7 +44,7 @@ object TapWorkarounds { val Card.isMultiwalletAllowed: Boolean get() { return cardData?.productMask?.contains(Product.TwinCard) != true - && !TapWorkarounds.isStart2Coin + && !isStart2Coin && (firmwareVersion.major >= 4 || getSingleWallet()?.curve == EllipticCurve.Secp256k1) } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt index 3a7b39e788..132dbddb18 100644 --- a/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/details/redux/DetailsReducer.kt @@ -4,7 +4,7 @@ package com.tangem.tap.features.details.redux import com.tangem.commands.common.card.Card import com.tangem.commands.common.card.masks.Settings import com.tangem.tap.common.redux.AppState -import com.tangem.tap.domain.TapWorkarounds +import com.tangem.tap.domain.TapWorkarounds.isStart2Coin import com.tangem.tap.domain.extensions.isWalletDataSupported import com.tangem.tap.domain.extensions.signedHashesCount import com.tangem.tap.domain.extensions.toSendableAmounts @@ -143,7 +143,7 @@ private fun handleSecurityAction( ): DetailsState { return when (action) { is DetailsAction.ManageSecurity.OpenSecurity -> { - if (TapWorkarounds.isStart2Coin) { + if (state.card?.isStart2Coin == true) { return state.copy(securityScreenState = state.securityScreenState?.copy( allowedOptions = EnumSet.of(SecurityOption.LongTap), selectedOption = state.securityScreenState.currentOption diff --git a/app/src/main/java/com/tangem/tap/features/feedback/FeedbackManager.kt b/app/src/main/java/com/tangem/tap/features/feedback/FeedbackManager.kt index 66690f555b..bab36b6f67 100644 --- a/app/src/main/java/com/tangem/tap/features/feedback/FeedbackManager.kt +++ b/app/src/main/java/com/tangem/tap/features/feedback/FeedbackManager.kt @@ -49,7 +49,11 @@ class FeedbackManager( } private fun getSupportEmail(): String { - return if (TapWorkarounds.isStart2Coin) S2C_SUPPORT_EMAIL else DEFAULT_SUPPORT_EMAIL + return if (TapWorkarounds.isStart2CoinIssuer(infoHolder.cardIssuer)) { + S2C_SUPPORT_EMAIL + } else { + DEFAULT_SUPPORT_EMAIL + } } private fun sendTo(email: String, subject: String, message: String, fileLog: File? = null) { @@ -144,6 +148,7 @@ class AdditionalEmailInfo { // card var cardId: String = "" var cardFirmwareVersion: String = "" + var cardIssuer: String = "" // wallets internal val walletsInfo = mutableListOf() @@ -172,6 +177,7 @@ class AdditionalEmailInfo { fun setCardInfo(card: Card) { cardId = card.cardId cardFirmwareVersion = card.firmwareVersion.version + cardIssuer = card.cardData?.issuerName ?: "" signedHashesCount = card.wallets .filter { it.status == WalletStatus.Loaded } .joinToString(";") { "${it.curve?.curve} - ${it.signedHashes}" } diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt index 3d2b5e9c37..7dcececcda 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt @@ -14,7 +14,7 @@ import com.tangem.tap.common.redux.global.GlobalAction import com.tangem.tap.common.redux.navigation.NavigationAction import com.tangem.tap.domain.TangemSigner import com.tangem.tap.domain.TapError -import com.tangem.tap.domain.TapWorkarounds +import com.tangem.tap.domain.TapWorkarounds.isStart2Coin import com.tangem.tap.domain.configurable.warningMessage.WarningMessage import com.tangem.tap.domain.extensions.minimalAmount import com.tangem.tap.features.send.redux.* @@ -108,7 +108,7 @@ private fun sendTransaction( scope.launch { walletManager.update() val isLinkedTerminal = tangemSdk.config.linkedTerminal - if (TapWorkarounds.isStart2Coin) { + if (card.isStart2Coin) { tangemSdk.config.linkedTerminal = false } val signer = TangemSigner(