diff --git a/app/src/main/java/com/tangem/tap/domain/configurable/config/ConfigManager.kt b/app/src/main/java/com/tangem/tap/domain/configurable/config/ConfigManager.kt index d6d05ac254..a79f3452b0 100644 --- a/app/src/main/java/com/tangem/tap/domain/configurable/config/ConfigManager.kt +++ b/app/src/main/java/com/tangem/tap/domain/configurable/config/ConfigManager.kt @@ -39,7 +39,7 @@ class ConfigManager { fun load(configLoader: Loader, onComplete: ((config: Config) -> Unit)? = null) { configLoader.load { configModel -> setupFeature(configModel.features) - setupKey(configModel.configValues) + setupConfigValues(configModel.configValues) onComplete?.invoke(config) } } @@ -77,67 +77,43 @@ class ConfigManager { ) } - @Suppress("LongMethod") - private fun setupKey(configValues: ConfigValueModel?) { + private fun setupConfigValues(configValues: ConfigValueModel?) { val values = configValues ?: return - config = config.copy( - coinMarketCapKey = values.coinMarketCapKey, - moonPayApiKey = values.moonPayApiKey, - moonPayApiSecretKey = values.moonPayApiSecretKey, - mercuryoWidgetId = values.mercuryoWidgetId, - mercuryoSecret = values.mercuryoSecret, + + config = createConfig(config, values) + defaultConfig = config.copy() + } + + private fun createConfig(config: Config, configValues: ConfigValueModel): Config { + return config.copy( + coinMarketCapKey = configValues.coinMarketCapKey, + moonPayApiKey = configValues.moonPayApiKey, + moonPayApiSecretKey = configValues.moonPayApiSecretKey, + mercuryoWidgetId = configValues.mercuryoWidgetId, + mercuryoSecret = configValues.mercuryoSecret, blockchainSdkConfig = BlockchainSdkConfig( blockchairCredentials = BlockchairCredentials( - apiKey = values.blockchairApiKeys, - authToken = values.blockchairAuthorizationToken, + apiKey = configValues.blockchairApiKeys, + authToken = configValues.blockchairAuthorizationToken, ), - blockcypherTokens = values.blockcypherTokens, + blockcypherTokens = configValues.blockcypherTokens, quickNodeCredentials = QuickNodeCredentials( - apiKey = values.quiknodeApiKey, - subdomain = values.quiknodeSubdomain, + apiKey = configValues.quiknodeApiKey, + subdomain = configValues.quiknodeSubdomain, ), bscQuickNodeCredentials = QuickNodeCredentials( - apiKey = values.bscQuiknodeApiKey, - subdomain = values.bscQuiknodeSubdomain, + apiKey = configValues.bscQuiknodeApiKey, + subdomain = configValues.bscQuiknodeSubdomain, ), - infuraProjectId = values.infuraProjectId, - tronGridApiKey = values.tronGridApiKey, - saltPayAuthToken = values.saltPay.credentials.token, + infuraProjectId = configValues.infuraProjectId, + tronGridApiKey = configValues.tronGridApiKey, + saltPayAuthToken = configValues.saltPay.credentials.token, ), - appsFlyerDevKey = values.appsFlyer.appsFlyerDevKey, - amplitudeApiKey = values.amplitudeApiKey, - shopify = values.shopifyShop, - zendesk = values.zendesk, - saltPayConfig = values.saltPay, - ) - defaultConfig = defaultConfig.copy( - coinMarketCapKey = values.coinMarketCapKey, - moonPayApiKey = values.moonPayApiKey, - moonPayApiSecretKey = values.moonPayApiSecretKey, - mercuryoWidgetId = values.mercuryoWidgetId, - mercuryoSecret = values.mercuryoSecret, - blockchainSdkConfig = BlockchainSdkConfig( - blockchairCredentials = BlockchairCredentials( - apiKey = values.blockchairApiKeys, - authToken = values.blockchairAuthorizationToken, - ), - blockcypherTokens = values.blockcypherTokens, - quickNodeCredentials = QuickNodeCredentials( - apiKey = values.quiknodeApiKey, - subdomain = values.quiknodeSubdomain, - ), - bscQuickNodeCredentials = QuickNodeCredentials( - apiKey = values.bscQuiknodeApiKey, - subdomain = values.bscQuiknodeSubdomain, - ), - infuraProjectId = values.infuraProjectId, - saltPayAuthToken = values.saltPay.credentials.token, - ), - appsFlyerDevKey = values.appsFlyer.appsFlyerDevKey, - amplitudeApiKey = values.amplitudeApiKey, - shopify = values.shopifyShop, - zendesk = values.zendesk, - saltPayConfig = values.saltPay, + appsFlyerDevKey = configValues.appsFlyer.appsFlyerDevKey, + amplitudeApiKey = configValues.amplitudeApiKey, + shopify = configValues.shopifyShop, + zendesk = configValues.zendesk, + saltPayConfig = configValues.saltPay, ) } diff --git a/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/redux/TwinCardsMiddleware.kt b/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/redux/TwinCardsMiddleware.kt index e9cb977dc5..f378c7080f 100644 --- a/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/redux/TwinCardsMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/onboarding/products/twins/redux/TwinCardsMiddleware.kt @@ -26,6 +26,7 @@ import com.tangem.tap.domain.TapError import com.tangem.tap.domain.extensions.makePrimaryWalletManager import com.tangem.tap.domain.model.builders.UserWalletIdBuilder import com.tangem.tap.domain.twins.TwinCardsManager +import com.tangem.tap.features.home.RUSSIA_COUNTRY_CODE import com.tangem.tap.features.onboarding.OnboardingHelper import com.tangem.tap.features.home.RUSSIA_COUNTRY_CODE import com.tangem.tap.features.wallet.models.Currency @@ -331,6 +332,6 @@ private fun handle(action: Action, dispatch: DispatchFunction) { scanResponse = action.scanResponse, ) } - else -> {} + else -> Unit } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/currencyItem/CurrencyItemHeader.kt b/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/currencyItem/CurrencyItemHeader.kt index cc8562ac62..bcc681addb 100644 --- a/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/currencyItem/CurrencyItemHeader.kt +++ b/app/src/main/java/com/tangem/tap/features/tokens/ui/compose/currencyItem/CurrencyItemHeader.kt @@ -34,6 +34,7 @@ import com.tangem.blockchain.common.Blockchain import com.tangem.core.ui.extensions.getActiveIconRes import com.tangem.domain.common.extensions.fromNetworkId import com.tangem.tap.common.extensions.getGreyedOutIconRes +import com.tangem.tap.domain.tokens.Contract import com.tangem.tap.domain.tokens.Currency import com.tangem.tap.features.tokens.redux.TokenWithBlockchain import com.tangem.tap.features.tokens.ui.compose.CurrencyPlaceholderIcon @@ -141,7 +142,7 @@ private fun NetworksRow( addedBlockchains = addedBlockchains, ) } else { - val isAdded = addedTokens.map { it.token.contractAddress }.contains(contract.address) + val isAdded = addedTokens.any(contract::isInclude) val iconResId = if (isAdded) { getActiveIconRes(contract.blockchain.id) } else { @@ -206,4 +207,7 @@ private fun BlockchainNetworkItem( } Spacer(modifier = Modifier.size(5.dp)) } -} \ No newline at end of file +} + +private fun Contract.isInclude(addedToken: TokenWithBlockchain): Boolean = + address == addedToken.token.contractAddress && blockchain == addedToken.blockchain \ No newline at end of file