Updated on 2026-08-14

This commit is contained in:
Tangem 2020-10-21 17:05:02 +03:00
parent 298ef986b3
commit 8a408774b8
8 changed files with 33 additions and 6 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before After
Before After

View file

@ -73,6 +73,7 @@ class PayIdManager {
Blockchain.BitcoinCash,
Blockchain.Binance,
Blockchain.RSK,
Blockchain.Tezos
)
fun isPayId(value: String?): Boolean = value?.contains(payIdRegExp) ?: false

View file

@ -12,7 +12,6 @@ import com.tangem.tap.common.redux.global.GlobalAction
import com.tangem.tap.domain.extensions.amountToCreateAccount
import com.tangem.tap.domain.extensions.isNoAccountError
import com.tangem.tap.domain.tasks.ScanNoteResponse
import com.tangem.tap.features.wallet.redux.PayIdState
import com.tangem.tap.features.wallet.redux.WalletAction
import com.tangem.tap.network.NetworkConnectivity
import com.tangem.tap.network.coinmarketcap.CoinMarketCapService
@ -25,6 +24,7 @@ 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
@ -78,6 +78,7 @@ class TapWalletManager {
}
suspend fun onCardScanned(data: ScanNoteResponse) {
tapWorkarounds = TapWorkarounds(data.card)
withContext(Dispatchers.Main) {
store.dispatch(WalletAction.ResetState)
store.dispatch(GlobalAction.SaveScanNoteResponse(data))
@ -142,7 +143,6 @@ class TapWalletManager {
private suspend fun loadPayIdIfNeeded(): Result<String?>? {
val scanNoteResponse = store.state.globalState.scanNoteResponse
if (!TapConfig.usePayId ||
store.state.walletState.payIdData.payIdState == PayIdState.Disabled ||
scanNoteResponse?.walletManager?.wallet?.blockchain?.isPayIdSupported() == false) {
return null
}
@ -160,7 +160,11 @@ class TapWalletManager {
is Result.Success -> {
val payId = result.data
if (payId == null) {
store.dispatch(WalletAction.LoadPayId.NotCreated)
if (tapWorkarounds?.isPayIdCreationEnabled() == false) {
store.dispatch(WalletAction.DisablePayId)
} else {
store.dispatch(WalletAction.LoadPayId.NotCreated)
}
} else {
store.dispatch(WalletAction.LoadPayId.Success(payId))
}

View file

@ -0,0 +1,17 @@
package com.tangem.tap.domain
import com.tangem.commands.Card
class TapWorkarounds(val card: Card) {
private val isStart2Coin: Boolean = card.cardData?.issuerName == START_2_COIN_ISSUER
fun isPayIdCreationEnabled(): Boolean {
if (isStart2Coin) return false
return true
}
companion object {
const val START_2_COIN_ISSUER = "start2coin"
}
}

View file

@ -50,6 +50,8 @@ sealed class WalletAction : Action {
object Failure : WalletAction()
}
object DisablePayId: WalletAction()
data class LoadArtwork(val card: Card, val artworkId: String?) : WalletAction() {
data class Success(val artwork: Artwork) : WalletAction()
object Failure : WalletAction()

View file

@ -176,6 +176,9 @@ private fun internalReduce(action: Action, state: AppState): WalletState {
is WalletAction.LoadPayId.NotCreated -> newState = newState.copy(
payIdData = PayIdData(PayIdState.NotCreated, null)
)
is WalletAction.DisablePayId -> newState = newState.copy(
payIdData = PayIdData(PayIdState.Disabled, null)
)
is WalletAction.CreatePayId, is WalletAction.CreatePayId.Failure ->
newState = newState.copy(
walletDialog = WalletDialog.CreatePayIdDialog(CreatingPayIdState.EnterPayId)

View file

@ -1,4 +1,4 @@
ext.versions = [
kotlin : '1.4.0',
build_gradle: '4.0.1',
build_gradle: '4.1.0',
]

View file

@ -1,6 +1,6 @@
#Thu Jun 11 11:33:17 MSK 2020
#Wed Oct 21 13:51:19 MSK 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip