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 7334aecc0d..7c38359430 100644
--- a/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt
+++ b/app/src/main/java/com/tangem/tap/domain/TapWalletManager.kt
@@ -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
}
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 b0bedc66be..de1640fd9c 100644
--- a/app/src/main/java/com/tangem/tap/domain/TapWorkarounds.kt
+++ b/app/src/main/java/com/tangem/tap/domain/TapWorkarounds.kt
@@ -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"
}
\ No newline at end of file
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 320eac8f91..98a096a77c 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
@@ -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)
diff --git a/app/src/main/java/com/tangem/tap/features/send/ui/stateSubscribers/SendStateSubscriber.kt b/app/src/main/java/com/tangem/tap/features/send/ui/stateSubscribers/SendStateSubscriber.kt
index 0e266fcc54..bdd2e9f3c4 100644
--- a/app/src/main/java/com/tangem/tap/features/send/ui/stateSubscribers/SendStateSubscriber.kt
+++ b/app/src/main/java/com/tangem/tap/features/send/ui/stateSubscribers/SendStateSubscriber.kt
@@ -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
diff --git a/app/src/main/res/layout/layout_send_address_payid.xml b/app/src/main/res/layout/layout_send_address_payid.xml
index a1423a4ed9..12a9d76915 100644
--- a/app/src/main/res/layout/layout_send_address_payid.xml
+++ b/app/src/main/res/layout/layout_send_address_payid.xml
@@ -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"
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index 467c665f4f..d2b3bb460e 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -51,7 +51,8 @@
Ihre PayID wurde erfolgreich erstellt und zum Clipboard kopiert
Fehlerantwort beim Erstellen der ZahlungsID
Diese PayID existiert bereits. Versuchen Sie mit einer anderen erneut.
- Adresse oder PayID
+ Adresse oder PayID
+ Adresse
Absenden
Netzgebühr
Betrag
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index f315ba278d..6c2934f23c 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -52,7 +52,8 @@
PayID a été créé avec succès et copié dans le presse-papiers
Mauvaise réponse lors de la création de PayID
Ce PayID existe déjà. Essayez une autre variante.
- Adresse ou PayID
+ Adresse ou PayID
+ Adresse
Envoyer
Commissions du réseau
Somme
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 93bac3c897..461ebd8693 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -50,7 +50,8 @@
PayID creato con successo e copiato negli appunti
Errore di risposta durante la creazione del PayID
Questo PayID esiste già. Scegline un altro.
- Indirizzo o PayID
+ Indirizzo o PayID
+ Indirizzo
Invia
Rete libera
Importo
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index a14f49d345..80f2e89d5f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -62,7 +62,8 @@
Error response while creating PayID
This PayID already exists. Try a different one.
- Address or PayID
+ Address or PayID
+ Address
Send
Network fee
Amount