Updated on 2026-08-14
This commit is contained in:
parent
426250efff
commit
7166307e43
9 changed files with 32 additions and 22 deletions
|
|
@ -26,7 +26,6 @@ import java.math.BigDecimal
|
|||
class TapWalletManager {
|
||||
private val payIdManager = PayIdManager()
|
||||
private val coinMarketCapService = CoinMarketCapService()
|
||||
private var tapWorkarounds: TapWorkarounds? = null
|
||||
|
||||
suspend fun loadWalletData() {
|
||||
val walletManager = store.state.globalState.scanNoteResponse?.walletManager
|
||||
|
|
@ -84,7 +83,7 @@ class TapWalletManager {
|
|||
if (addAnalyticsEvent) {
|
||||
FirebaseAnalyticsHandler.triggerEvent(AnalyticsEvent.CARD_IS_SCANNED, data.card)
|
||||
}
|
||||
tapWorkarounds = TapWorkarounds(data.card)
|
||||
TapWorkarounds.updateCard(data.card)
|
||||
withContext(Dispatchers.Main) {
|
||||
store.dispatch(WalletAction.ResetState)
|
||||
store.dispatch(GlobalAction.SaveScanNoteResponse(data))
|
||||
|
|
@ -103,7 +102,7 @@ class TapWalletManager {
|
|||
}
|
||||
store.dispatch(WalletAction.LoadWallet(
|
||||
data.walletManager.wallet, data.verifyResponse?.artworkInfo?.id,
|
||||
tapWorkarounds?.isStart2Coin != true && TapConfig.useTopUp
|
||||
TapWorkarounds.isStart2Coin != true && TapConfig.useTopUp
|
||||
))
|
||||
store.dispatch(WalletAction.LoadArtwork(data.card, artworkId))
|
||||
store.dispatch(WalletAction.LoadFiatRate)
|
||||
|
|
@ -168,7 +167,7 @@ class TapWalletManager {
|
|||
when (result) {
|
||||
is Result.Success -> {
|
||||
val payId = result.data
|
||||
if (tapWorkarounds?.isPayIdEnabled() == false) {
|
||||
if (TapWorkarounds.isPayIdEnabled() == false) {
|
||||
store.dispatch(WalletAction.DisablePayId)
|
||||
return@withContext
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,17 +3,19 @@ package com.tangem.tap.domain
|
|||
import com.tangem.commands.Card
|
||||
import java.util.*
|
||||
|
||||
class TapWorkarounds(val card: Card) {
|
||||
object TapWorkarounds {
|
||||
|
||||
val isStart2Coin: Boolean =
|
||||
card.cardData?.issuerName?.toLowerCase(Locale.US) == START_2_COIN_ISSUER
|
||||
var isStart2Coin: Boolean = false
|
||||
private set
|
||||
|
||||
fun updateCard(card: Card) {
|
||||
isStart2Coin = card.cardData?.issuerName?.toLowerCase(Locale.US) == START_2_COIN_ISSUER
|
||||
}
|
||||
|
||||
fun isPayIdEnabled(): Boolean {
|
||||
if (isStart2Coin) return false
|
||||
return true
|
||||
}
|
||||
|
||||
companion object {
|
||||
const val START_2_COIN_ISSUER = "start2coin"
|
||||
}
|
||||
const val START_2_COIN_ISSUER = "start2coin"
|
||||
}
|
||||
|
|
@ -4,6 +4,7 @@ import com.tangem.blockchain.common.Wallet
|
|||
import com.tangem.commands.common.network.Result
|
||||
import com.tangem.tap.common.redux.AppState
|
||||
import com.tangem.tap.domain.PayIdManager
|
||||
import com.tangem.tap.domain.TapWorkarounds
|
||||
import com.tangem.tap.domain.isPayIdSupported
|
||||
import com.tangem.tap.features.send.redux.AddressPayIdActionUi
|
||||
import com.tangem.tap.features.send.redux.AddressPayIdVerifyAction
|
||||
|
|
@ -48,7 +49,7 @@ internal class AddressPayIdMiddleware {
|
|||
|
||||
private fun setAddressAndCheck(data: String, isUserInput: Boolean, dispatch: (Action) -> Unit) {
|
||||
val potentialPayId = data.toLowerCase()
|
||||
if (PayIdManager.isPayId(potentialPayId)) {
|
||||
if (PayIdManager.isPayId(potentialPayId) && TapWorkarounds.isPayIdEnabled()) {
|
||||
dispatch(SetPayIdWalletAddress(potentialPayId, "", isUserInput))
|
||||
} else {
|
||||
dispatch(SetWalletAddress(data, isUserInput))
|
||||
|
|
@ -62,7 +63,7 @@ internal class AddressPayIdMiddleware {
|
|||
val addressPayId = sendState.addressPayIdState.normalFieldValue ?: return
|
||||
val isUserInput = sendState.addressPayIdState.viewFieldValue.isFromUserInput
|
||||
|
||||
if (PayIdManager.isPayId(addressPayId)) {
|
||||
if (PayIdManager.isPayId(addressPayId) && TapWorkarounds.isPayIdEnabled()) {
|
||||
verifyPayId(addressPayId, wallet, isUserInput, dispatch)
|
||||
} else {
|
||||
verifyAddress(addressPayId, wallet, isUserInput, dispatch)
|
||||
|
|
@ -149,7 +150,7 @@ internal class AddressPayIdMiddleware {
|
|||
}
|
||||
}
|
||||
|
||||
if (PayIdManager.isPayId(addressPayId)) {
|
||||
if (PayIdManager.isPayId(addressPayId) && TapWorkarounds.isPayIdEnabled()) {
|
||||
verifyPayId(addressPayId, wallet, false, internalDispatcher)
|
||||
} else {
|
||||
verifyAddress(addressPayId, wallet, false, internalDispatcher)
|
||||
|
|
|
|||
|
|
@ -5,14 +5,12 @@ import android.content.Context
|
|||
import android.text.SpannableStringBuilder
|
||||
import android.view.ViewGroup
|
||||
import androidx.core.text.bold
|
||||
import com.tangem.tap.common.extensions.beginDelayedTransition
|
||||
import com.tangem.tap.common.extensions.enableError
|
||||
import com.tangem.tap.common.extensions.show
|
||||
import com.tangem.tap.common.extensions.update
|
||||
import com.tangem.tap.common.extensions.*
|
||||
import com.tangem.tap.common.redux.getMessageString
|
||||
import com.tangem.tap.common.text.DecimalDigitsInputFilter
|
||||
import com.tangem.tap.common.toggleWidget.ProgressState
|
||||
import com.tangem.tap.domain.MultiMessageError
|
||||
import com.tangem.tap.domain.TapWorkarounds
|
||||
import com.tangem.tap.domain.assembleErrors
|
||||
import com.tangem.tap.features.send.BaseStoreFragment
|
||||
import com.tangem.tap.features.send.redux.AddressPayIdVerifyAction.Error
|
||||
|
|
@ -106,6 +104,12 @@ class SendStateSubscriber(fragment: BaseStoreFragment) : FragmentStateSubscriber
|
|||
val til = fg.tilAddressOrPayId
|
||||
val parsedError = parseError(til.context, state.error)
|
||||
|
||||
val hintResId = if (TapWorkarounds.isPayIdEnabled()) {
|
||||
R.string.send_destination_hint_address_payid
|
||||
}else {
|
||||
R.string.send_destination_hint_address
|
||||
}
|
||||
til.hint = til.getString(hintResId)
|
||||
til.parent?.parent?.beginDelayedTransition()
|
||||
til.error = parsedError
|
||||
til.isErrorEnabled = parsedError != null
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@
|
|||
android:id="@+id/tilAddressOrPayId"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/send_destination_hint"
|
||||
android:hint="@string/send_destination_hint_address_payid"
|
||||
app:boxBackgroundColor="@color/backgroundLightGray"
|
||||
app:errorIconDrawable="@null"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
|
|
|
|||
|
|
@ -51,7 +51,8 @@
|
|||
<string name="wallet_create_payid_success_message">Ihre PayID wurde erfolgreich erstellt und zum Clipboard kopiert</string>
|
||||
<string name="wallet_create_payid_error_message">Fehlerantwort beim Erstellen der ZahlungsID</string>
|
||||
<string name="wallet_create_payid_error_already_created">Diese PayID existiert bereits. Versuchen Sie mit einer anderen erneut.</string>
|
||||
<string name="send_destination_hint">Adresse oder PayID</string>
|
||||
<string name="send_destination_hint_address_payid">Adresse oder PayID</string>
|
||||
<string name="send_destination_hint_address">Adresse</string>
|
||||
<string name="send_title">Absenden</string>
|
||||
<string name="send_network_fee_title">Netzgebühr</string>
|
||||
<string name="send_amount_label">Betrag</string>
|
||||
|
|
|
|||
|
|
@ -52,7 +52,8 @@
|
|||
<string name="wallet_create_payid_success_message">PayID a été créé avec succès et copié dans le presse-papiers </string>
|
||||
<string name="wallet_create_payid_error_message">Mauvaise réponse lors de la création de PayID </string>
|
||||
<string name="wallet_create_payid_error_already_created">Ce PayID existe déjà. Essayez une autre variante.</string>
|
||||
<string name="send_destination_hint">Adresse ou PayID</string>
|
||||
<string name="send_destination_hint_address_payid">Adresse ou PayID</string>
|
||||
<string name="send_destination_hint_address">Adresse</string>
|
||||
<string name="send_title">Envoyer </string>
|
||||
<string name="send_network_fee_title">Commissions du réseau </string>
|
||||
<string name="send_amount_label">Somme </string>
|
||||
|
|
|
|||
|
|
@ -50,7 +50,8 @@
|
|||
<string name="wallet_create_payid_success_message">PayID creato con successo e copiato negli appunti</string>
|
||||
<string name="wallet_create_payid_error_message">Errore di risposta durante la creazione del PayID</string>
|
||||
<string name="wallet_create_payid_error_already_created">Questo PayID esiste già. Scegline un altro.</string>
|
||||
<string name="send_destination_hint">Indirizzo o PayID</string>
|
||||
<string name="send_destination_hint_address_payid">Indirizzo o PayID</string>
|
||||
<string name="send_destination_hint_address">Indirizzo</string>
|
||||
<string name="send_title">Invia</string>
|
||||
<string name="send_network_fee_title">Rete libera</string>
|
||||
<string name="send_amount_label">Importo</string>
|
||||
|
|
|
|||
|
|
@ -62,7 +62,8 @@
|
|||
<string name="wallet_create_payid_error_message">Error response while creating PayID</string>
|
||||
<string name="wallet_create_payid_error_already_created">This PayID already exists. Try a different one.</string>
|
||||
|
||||
<string name="send_destination_hint">Address or PayID</string>
|
||||
<string name="send_destination_hint_address_payid">Address or PayID</string>
|
||||
<string name="send_destination_hint_address">Address</string>
|
||||
<string name="send_title">Send</string>
|
||||
<string name="send_network_fee_title">Network fee</string>
|
||||
<string name="send_amount_label">Amount</string>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue