From c92c16e23050bb109c224292360b5b33c4f2c702 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 24 Nov 2020 18:33:01 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tangem/tap/features/details/redux/DetailsReducer.kt | 7 +++++++ .../send/redux/middlewares/AddressPayIdMiddleware.kt | 4 +++- .../tap/features/send/redux/middlewares/SendMiddleware.kt | 6 ++++++ 3 files changed, 16 insertions(+), 1 deletion(-) 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 bab4e4649f..5f4641aed7 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 @@ -3,6 +3,7 @@ package com.tangem.tap.features.details.redux import com.tangem.commands.Card import com.tangem.commands.Settings import com.tangem.tap.common.redux.AppState +import com.tangem.tap.domain.TapWorkarounds import com.tangem.tap.domain.extensions.toSendableAmounts import org.rekotlin.Action import java.util.* @@ -112,6 +113,12 @@ private fun handleSecurityAction( ): DetailsState { return when (action) { is DetailsAction.ManageSecurity.OpenSecurity -> { + if (TapWorkarounds.isStart2Coin) { + return state.copy(securityScreenState = state.securityScreenState?.copy( + allowedOptions = EnumSet.of(SecurityOption.LongTap), + selectedOption = state.securityScreenState.currentOption + )) + } if (state.card?.isPin2Default == null) { return state.copy(securityScreenState = state.securityScreenState?.copy( allowedOptions = EnumSet.noneOf(SecurityOption::class.java) diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/AddressPayIdMiddleware.kt b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/AddressPayIdMiddleware.kt index 98a096a77c..680654633b 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/AddressPayIdMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/AddressPayIdMiddleware.kt @@ -105,7 +105,7 @@ internal class AddressPayIdMiddleware { } private fun verifyAddress(address: String, wallet: Wallet, isUserInput: Boolean, dispatch: (Action) -> Unit) { - val supposedAddress = extractAddressFromShareUri(address) + val supposedAddress = extractAddressFromShareUri(address).removeNonAddressData() val failReason = isValidBlockchainAddressAndNotTheSameAsWallet(wallet, supposedAddress) if (failReason == null) { @@ -134,6 +134,8 @@ internal class AddressPayIdMiddleware { return if (prefixes.isEmpty()) shareUri else shareUri.replace(prefixes[0], "") } + private fun String.removeNonAddressData(): String = this.substringBefore("?") + private fun verifyClipboard(input: String?, appState: AppState?, dispatch: DispatchFunction) { val addressPayId = input ?: return val wallet = appState?.sendState?.walletManager?.wallet ?: return 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 34414e9381..c3a44ea7ad 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 @@ -12,6 +12,7 @@ import com.tangem.tap.common.redux.AppState import com.tangem.tap.common.redux.global.GlobalAction import com.tangem.tap.common.redux.navigation.NavigationAction import com.tangem.tap.domain.TapError +import com.tangem.tap.domain.TapWorkarounds import com.tangem.tap.domain.extensions.minimalAmount import com.tangem.tap.features.send.redux.* import com.tangem.tap.features.send.redux.FeeAction.RequestFee @@ -91,11 +92,16 @@ private fun sendTransaction( val txData = walletManager.createTransaction(amountToSend, feeAmount, recipientAddress) scope.launch { walletManager.update() + val isLinkedTerminal = tangemSdk.config.linkedTerminal + if (TapWorkarounds.isStart2Coin) { + tangemSdk.config.linkedTerminal = false + } val signer = Signer(tangemSdk, action.messageForSigner) val result = (walletManager as TransactionSender).send(txData, signer) withContext(Dispatchers.Main) { when (result) { is Result.Success -> { + tangemSdk.config.linkedTerminal = isLinkedTerminal FirebaseAnalyticsHandler.triggerEvent(AnalyticsEvent.TRANSACTION_IS_SENT, card) dispatch(SendAction.SendSuccess) dispatch(GlobalAction.UpdateWalletSignedHashes(result.data.walletSignedHashes))