diff --git a/core/config-toggles/detekt-baseline-debug.xml b/core/config-toggles/detekt-baseline-debug.xml
index b0e03ef827..274a75d8d4 100644
--- a/core/config-toggles/detekt-baseline-debug.xml
+++ b/core/config-toggles/detekt-baseline-debug.xml
@@ -2,8 +2,6 @@
- DoubleMutabilityForCollection:DevExcludedBlockchainsManager.kt$DevExcludedBlockchainsManager$private var blockchainTogglesMap: MutableMap<String, Boolean> by Delegates.notNull()
- DoubleMutabilityForCollection:DevFeatureTogglesManager.kt$DevFeatureTogglesManager$private var featureTogglesMap: MutableMap<String, Boolean> by Delegates.notNull()
Indentation:ExcludedBlockchainToggles.kt$ExcludedBlockchainToggles$
Indentation:FeatureToggles.kt$FeatureToggles$
diff --git a/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/blockchain/impl/DevExcludedBlockchainsManager.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/blockchain/impl/DevExcludedBlockchainsManager.kt
index 6f6645c865..98311b8d7a 100644
--- a/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/blockchain/impl/DevExcludedBlockchainsManager.kt
+++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/blockchain/impl/DevExcludedBlockchainsManager.kt
@@ -21,6 +21,8 @@ internal class DevExcludedBlockchainsManager(
) : MutableExcludedBlockchainsManager {
private val fileBlockchainToggles: Map = getFileBlockchainToggles()
+
+ @Suppress("DoubleMutabilityForCollection")
private var blockchainTogglesMap: MutableMap by Delegates.notNull()
override val excludedBlockchainsIds: Set
diff --git a/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/feature/impl/DevFeatureTogglesManager.kt b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/feature/impl/DevFeatureTogglesManager.kt
index 79d78151b7..d59bac9d71 100644
--- a/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/feature/impl/DevFeatureTogglesManager.kt
+++ b/core/config-toggles/src/main/kotlin/com/tangem/core/configtoggle/feature/impl/DevFeatureTogglesManager.kt
@@ -22,6 +22,8 @@ internal class DevFeatureTogglesManager(
) : MutableFeatureTogglesManager {
private val fileFeatureTogglesMap: Map = getFileFeatureToggles()
+
+ @Suppress("DoubleMutabilityForCollection")
private var featureTogglesMap: MutableMap by Delegates.notNull()
init {
diff --git a/data/account/src/main/kotlin/com/tangem/data/account/fetcher/DefaultWalletAccountsFetcher.kt b/data/account/src/main/kotlin/com/tangem/data/account/fetcher/DefaultWalletAccountsFetcher.kt
index 99d4ac7ff6..3bc99dc784 100644
--- a/data/account/src/main/kotlin/com/tangem/data/account/fetcher/DefaultWalletAccountsFetcher.kt
+++ b/data/account/src/main/kotlin/com/tangem/data/account/fetcher/DefaultWalletAccountsFetcher.kt
@@ -115,7 +115,7 @@ internal class DefaultWalletAccountsFetcher @Inject constructor(
saveETag(userWalletId, apiResponse)
- apiResponse.bind()
+ apiResponse.bind().enrichByAccountId()
},
onError = { error ->
if (error.isNetworkError(code = Code.PRECONDITION_FAILED)) {
@@ -142,10 +142,11 @@ internal class DefaultWalletAccountsFetcher @Inject constructor(
saveETag(userWalletId, apiResponse)
- val responseBody = apiResponse.bind()
- store(userWalletId = userWalletId, response = responseBody)
+ val response = apiResponse.bind().enrichByAccountId()
- FetchResult(responseBody)
+ store(userWalletId = userWalletId, response = response)
+
+ FetchResult(response)
},
onError = { throwable ->
// pushWalletAccounts and storeWalletAccounts help to avoid cyclic dependency
@@ -215,6 +216,18 @@ internal class DefaultWalletAccountsFetcher @Inject constructor(
}
}
+ private fun GetWalletAccountsResponse.enrichByAccountId(): GetWalletAccountsResponse {
+ return copy(
+ accounts = accounts.map { accountDTO ->
+ accountDTO.copy(
+ tokens = accountDTO.tokens?.map { token ->
+ token.copy(accountId = accountDTO.id)
+ },
+ )
+ },
+ )
+ }
+
private fun getAccountsResponseStore(userWalletId: UserWalletId): AccountsResponseStore {
return accountsResponseStoreFactory.create(userWalletId = userWalletId)
}
diff --git a/data/account/src/main/kotlin/com/tangem/data/account/tokens/DefaultMainAccountTokensMigration.kt b/data/account/src/main/kotlin/com/tangem/data/account/tokens/DefaultMainAccountTokensMigration.kt
index d1a0449ebc..d4e9d0325f 100644
--- a/data/account/src/main/kotlin/com/tangem/data/account/tokens/DefaultMainAccountTokensMigration.kt
+++ b/data/account/src/main/kotlin/com/tangem/data/account/tokens/DefaultMainAccountTokensMigration.kt
@@ -61,7 +61,7 @@ internal class DefaultMainAccountTokensMigration(
val unassignedTokens = mainAccount.findUnassignedTokens(derivationIndex)
- if (unassignedTokens == null) {
+ if (unassignedTokens.isNullOrEmpty()) {
Timber.i("No unassigned tokens found for migration")
return@either
}
diff --git a/data/common/src/main/kotlin/com/tangem/data/common/network/NetworkFactory.kt b/data/common/src/main/kotlin/com/tangem/data/common/network/NetworkFactory.kt
index 4ffb1c9210..265418339e 100644
--- a/data/common/src/main/kotlin/com/tangem/data/common/network/NetworkFactory.kt
+++ b/data/common/src/main/kotlin/com/tangem/data/common/network/NetworkFactory.kt
@@ -74,6 +74,7 @@ class NetworkFactory @Inject constructor(
blockchain = blockchain,
excludedBlockchains = excludedBlockchains,
),
+ shouldCheckChia = false,
)
}
@@ -128,9 +129,10 @@ class NetworkFactory @Inject constructor(
derivationPath: Network.DerivationPath,
canHandleTokens: Boolean,
accountIndex: DerivationIndex? = null,
+ shouldCheckChia: Boolean = true,
): Network? {
if (!blockchain.isBlockchainSupported()) return null
- if (blockchain == Blockchain.Chia && accountIndex != DerivationIndex.Main) return null
+ if (shouldCheckChia && blockchain == Blockchain.Chia && accountIndex != DerivationIndex.Main) return null
return runCatching {
Network(
diff --git a/data/feedback/detekt-baseline-debug.xml b/data/feedback/detekt-baseline-debug.xml
index 596e50e191..d10388bff4 100644
--- a/data/feedback/detekt-baseline-debug.xml
+++ b/data/feedback/detekt-baseline-debug.xml
@@ -3,7 +3,5 @@
BooleanPropertyNaming:DefaultFeedbackRepository.kt$DefaultFeedbackRepository$private val useNewUserWalletsRepository: Boolean
- MultilineLambdaItParameter:DefaultFeedbackRepository.kt$DefaultFeedbackRepository${ it.toMutableMap().apply { put(userWallet.walletId, error) } }
- UseOrEmpty:BlockchainInfoConverter.kt$BlockchainInfoConverter$value.wallet.publicKey.derivationPath?.rawPath ?: ""
diff --git a/data/feedback/src/main/java/com/tangem/data/feedback/DefaultFeedbackRepository.kt b/data/feedback/src/main/java/com/tangem/data/feedback/DefaultFeedbackRepository.kt
index 10bb463509..dcadace780 100644
--- a/data/feedback/src/main/java/com/tangem/data/feedback/DefaultFeedbackRepository.kt
+++ b/data/feedback/src/main/java/com/tangem/data/feedback/DefaultFeedbackRepository.kt
@@ -97,9 +97,9 @@ internal class DefaultFeedbackRepository(
override fun saveBlockchainErrorInfo(error: BlockchainErrorInfo) {
val userWallet = getSelectedWalletUseCase.sync().getOrNull() ?: error("UserWallet is not selected")
- blockchainsErrors.update {
- it.toMutableMap().apply {
- put(userWallet.walletId, error)
+ blockchainsErrors.update { map ->
+ map.toMutableMap().apply {
+ this[userWallet.walletId] = error
}
}
}
diff --git a/data/feedback/src/main/java/com/tangem/data/feedback/converters/BlockchainInfoConverter.kt b/data/feedback/src/main/java/com/tangem/data/feedback/converters/BlockchainInfoConverter.kt
index 686cec71dd..8c430ced24 100644
--- a/data/feedback/src/main/java/com/tangem/data/feedback/converters/BlockchainInfoConverter.kt
+++ b/data/feedback/src/main/java/com/tangem/data/feedback/converters/BlockchainInfoConverter.kt
@@ -16,9 +16,11 @@ import com.tangem.domain.feedback.models.BlockchainInfo.Addresses as BlockchainA
internal object BlockchainInfoConverter : Converter {
override fun convert(value: WalletManager): BlockchainInfo {
+ val derivationPath = value.wallet.publicKey.derivationPath
+
return BlockchainInfo(
blockchain = value.wallet.blockchain.fullName,
- derivationPath = value.wallet.publicKey.derivationPath?.rawPath ?: "",
+ derivationPath = derivationPath?.rawPath.orEmpty(),
outputsCount = value.outputsCount?.toString(),
host = value.currentHost,
addresses = value.wallet.mapAddresses(Address::value),
diff --git a/data/promo/detekt-baseline-debug.xml b/data/promo/detekt-baseline-debug.xml
index 0f6f378450..7ac3d42cb4 100644
--- a/data/promo/detekt-baseline-debug.xml
+++ b/data/promo/detekt-baseline-debug.xml
@@ -2,8 +2,6 @@
- NullableBooleanCheck:DefaultPromoRepository.kt$DefaultPromoRepository$getSepaPromoBanner()?.isActive ?: false
- NullableBooleanCheck:DefaultPromoRepository.kt$DefaultPromoRepository$getVisaPromoBanner()?.isActive ?: false
SuspendFunSwallowedCancellation:DefaultPromoRepository.kt$DefaultPromoRepository$runCatching
SuspendFunWithFlowReturnType:DefaultPromoRepository.kt$DefaultPromoRepository$suspend
diff --git a/detekt_baseline_report.txt b/detekt_baseline_report.txt
index 0493bd4f8d..6e74d6e47d 100644
--- a/detekt_baseline_report.txt
+++ b/detekt_baseline_report.txt
@@ -1,7 +1,7 @@
==========================================
Detekt Baseline Updater & Issue Counter
==========================================
-Date: 2025-11-28 11:36:19
+Date: 2025-12-01 16:30:16
Step 1: Running detekt to check for new issues...
@@ -17,13 +17,13 @@ Counting issues in baseline files...
==========================================
Summary:
- Total Issues: 1473
- Modules with Issues: 65
- Average Issues per Module: 22
+ Total Issues: 1453
+ Modules with Issues: 62
+ Average Issues per Module: 23
Progress:
- Fixed: 329 out of 1802 (18%)
- Remaining: 1473
+ Fixed: 349 out of 1802 (19%)
+ Remaining: 1453
==========================================
All Modules with Issues (sorted by count)
@@ -31,10 +31,10 @@ All Modules with Issues (sorted by count)
Module Issues
────────────────────────────────────────────────────────────────
-features/wallet/impl 151
+features/wallet/impl 148
features/markets/impl 148
features/onboarding-v2/impl 130
-features/swap/impl 69
+features/swap/impl 67
features/send-v2/impl 57
data/wallet-connect 55
features/hot-wallet/impl 53
@@ -48,8 +48,8 @@ features/nft/impl 34
features/tester/impl 31
domain/tokens 28
core/ui 27
-features/swap/domain 26
common/ui 26
+features/swap/domain 25
data/visa 22
features/yield-supply/impl 21
features/tangempay/details/impl 21
@@ -84,16 +84,13 @@ domain/legacy 5
data/transaction 5
features/referral/domain 4
features/biometry/impl 4
-data/promo 4
-core/config-toggles 4
features/txhistory/impl 3
features/tangempay/onboarding/impl 3
features/create-wallet-start/impl 3
domain/manage-tokens 3
-domain/demo/models 3
-domain/card 3
-data/feedback 3
common/routing 3
-features/yield-supply/api 2
features/account/api 2
+data/promo 2
+core/config-toggles 2
+data/feedback 1
────────────────────────────────────────────────────────────────
\ No newline at end of file
diff --git a/domain/card/detekt-baseline-debug.xml b/domain/card/detekt-baseline-debug.xml
deleted file mode 100644
index 277a01c1fe..0000000000
--- a/domain/card/detekt-baseline-debug.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
- NamedArguments:TangemCardTypesResolver.kt$TangemCardTypesResolver$Token( cardToken.name, cardToken.symbol, cardToken.contractAddress, cardToken.decimals, )
- PropertyUsedBeforeDeclaration:TapWorkarounds.kt$TapWorkarounds$excludedBatches
- PropertyUsedBeforeDeclaration:TapWorkarounds.kt$TapWorkarounds$excludedIssuers
-
-
diff --git a/domain/card/src/main/kotlin/com/tangem/domain/card/TangemCardTypesResolver.kt b/domain/card/src/main/kotlin/com/tangem/domain/card/TangemCardTypesResolver.kt
index db4b0973cb..3e6943f724 100644
--- a/domain/card/src/main/kotlin/com/tangem/domain/card/TangemCardTypesResolver.kt
+++ b/domain/card/src/main/kotlin/com/tangem/domain/card/TangemCardTypesResolver.kt
@@ -36,15 +36,15 @@ internal class TangemCardTypesResolver(
override fun isTangemWallet(): Boolean {
return card.settings.isBackupAllowed && card.settings.isHDWalletAllowed &&
- card.firmwareVersion >= FirmwareVersion.Companion.MultiWalletAvailable
+ card.firmwareVersion >= FirmwareVersion.MultiWalletAvailable
}
override fun isShibaWallet(): Boolean {
- return card.firmwareVersion.compareTo(FirmwareVersion.Companion.KeysImportAvailable) == 0
+ return card.firmwareVersion.compareTo(FirmwareVersion.KeysImportAvailable) == 0
}
override fun isWhiteWallet(): Boolean {
- return walletData == null && card.firmwareVersion <= FirmwareVersion.Companion.HDWalletAvailable
+ return walletData == null && card.firmwareVersion <= FirmwareVersion.HDWalletAvailable
}
override fun isWallet2(): Boolean = card.isWallet2
@@ -73,7 +73,7 @@ internal class TangemCardTypesResolver(
(multiWalletAvailable() || card.wallets.firstOrNull()?.curve == EllipticCurve.Secp256k1)
}
- private fun multiWalletAvailable() = card.firmwareVersion >= FirmwareVersion.Companion.MultiWalletAvailable
+ private fun multiWalletAvailable() = card.firmwareVersion >= FirmwareVersion.MultiWalletAvailable
override fun getBlockchain(): Blockchain {
return when (productType) {
@@ -93,12 +93,15 @@ internal class TangemCardTypesResolver(
override fun getPrimaryToken(): Token? {
val cardToken = walletData?.token ?: return null
- return Token(
- cardToken.name,
- cardToken.symbol,
- cardToken.contractAddress,
- cardToken.decimals,
- )
+
+ return with(cardToken) {
+ Token(
+ name = name,
+ symbol = symbol,
+ contractAddress = contractAddress,
+ decimals = decimals,
+ )
+ }
}
override fun isReleaseFirmwareType(): Boolean = card.firmwareVersion.type == FirmwareVersion.FirmwareType.Release
diff --git a/domain/card/src/main/kotlin/com/tangem/domain/card/common/TapWorkarounds.kt b/domain/card/src/main/kotlin/com/tangem/domain/card/common/TapWorkarounds.kt
index 550ddd0749..f012a0bfaf 100644
--- a/domain/card/src/main/kotlin/com/tangem/domain/card/common/TapWorkarounds.kt
+++ b/domain/card/src/main/kotlin/com/tangem/domain/card/common/TapWorkarounds.kt
@@ -38,6 +38,7 @@ object TapWorkarounds {
val CardDTO.hasOldStyleDerivation: Boolean
get() = batchId == "AC01" || batchId == "AC02" || batchId == "CB95"
+ @Suppress("PropertyUsedBeforeDeclaration")
val CardDTO.isExcluded: Boolean
get() {
val isBatchExcluded = excludedBatches.contains(batchId)
diff --git a/domain/demo/models/detekt-baseline-debug.xml b/domain/demo/models/detekt-baseline-debug.xml
deleted file mode 100644
index 638c5c1870..0000000000
--- a/domain/demo/models/detekt-baseline-debug.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
- PropertyUsedBeforeDeclaration:DemoConfig.kt$DemoConfig$debugTestDemoCardIds
- PropertyUsedBeforeDeclaration:DemoConfig.kt$DemoConfig$releaseDemoCardIds
- PropertyUsedBeforeDeclaration:DemoConfig.kt$DemoConfig$testDemoCardIds
-
-
diff --git a/domain/demo/models/src/main/kotlin/com/tangem/domain/demo/models/DemoConfig.kt b/domain/demo/models/src/main/kotlin/com/tangem/domain/demo/models/DemoConfig.kt
index 0ec194c730..5ed3b8e893 100644
--- a/domain/demo/models/src/main/kotlin/com/tangem/domain/demo/models/DemoConfig.kt
+++ b/domain/demo/models/src/main/kotlin/com/tangem/domain/demo/models/DemoConfig.kt
@@ -4,7 +4,7 @@ import com.tangem.blockchain.common.Amount
import com.tangem.blockchain.common.Blockchain
import java.math.BigDecimal
-@Suppress("LargeClass")
+@Suppress("LargeClass", "ClassOrdering", "PropertyUsedBeforeDeclaration")
object DemoConfig {
/**
@@ -65,7 +65,6 @@ object DemoConfig {
return (releaseDemoCardIds + testDemoCardIds).distinct()
}
- @Suppress("ClassOrdering")
private val releaseDemoCardIds = mutableListOf(
// === Not from the Google Sheet table ===
"AC01000000041225",
@@ -449,7 +448,6 @@ object DemoConfig {
"AF10100000000084",
)
- @Suppress("ClassOrdering")
private val testDemoCardIds = listOf(
"FB20000000000186", // Note ETH
"FB10000000000196", // Note BTC
@@ -457,6 +455,5 @@ object DemoConfig {
"FB04000000000152", // Wallet 2
)
- @Suppress("ClassOrdering")
private val debugTestDemoCardIds = emptyList()
}
\ No newline at end of file
diff --git a/features/swap/domain/detekt-baseline-debug.xml b/features/swap/domain/detekt-baseline-debug.xml
index 123e48864f..e1d3527ea0 100644
--- a/features/swap/domain/detekt-baseline-debug.xml
+++ b/features/swap/domain/detekt-baseline-debug.xml
@@ -25,7 +25,6 @@
NamedArguments:SwapInteractorImpl.kt$SwapInteractorImpl$tryGetFromCacheV2(userWallet, initialCryptoCurrency, state, isReverseFromTo)
NoNameShadowing:SwapInteractorImpl.kt$SwapInteractorImpl$account
NoNameShadowing:SwapInteractorImpl.kt$SwapInteractorImpl${ it.isAvailable }
- NullableToStringCall:SwapInteractorImpl.kt$SwapInteractorImpl$$swapData
NullableToStringCall:SwapInteractorImpl.kt$SwapInteractorImpl$${e.message}
SuspendFunSwallowedCancellation:SwapInteractorImpl.kt$SwapInteractorImpl$runCatching
diff --git a/features/swap/impl/detekt-baseline-debug.xml b/features/swap/impl/detekt-baseline-debug.xml
index d7df904787..72441faba2 100644
--- a/features/swap/impl/detekt-baseline-debug.xml
+++ b/features/swap/impl/detekt-baseline-debug.xml
@@ -48,8 +48,6 @@
MultilineLambdaItParameter:SwapModel.kt$SwapModel${ uiState = stateBuilder.dismissBottomSheet(uiState) dataState = dataState.copy(selectedFee = it) modelScope.launch(dispatchers.io) { startLoadingQuotesFromLastState(false) } }
MultilineLambdaItParameter:SwapModel.kt$SwapModel${ val balance = swapInteractor.getTokenBalance(it) onAmountChanged(balance.formatToUIRepresentation()) }
MultilineLambdaItParameter:SwapModel.kt$SwapModel${ val provider = findAndSelectProvider(it) val swapState = dataState.lastLoadedSwapStates[provider] val fromToken = dataState.fromCryptoCurrency if (provider != null && swapState != null && fromToken != null) { analyticsEventHandler.send(SwapEvents.ProviderChosen(provider)) uiState = stateBuilder.dismissBottomSheet(uiState) setupLoadedState( provider = provider, state = swapState, fromToken = fromToken, ) } }
- MultilineLambdaItParameter:SwapModel.kt$SwapModel${ when (it) { is SwapTransactionState.TxSent -> { sendApproveSuccessEvent(fromToken, feeForPermission.feeType, approveType) updateWalletBalance() uiState = stateBuilder.loadingPermissionState(uiState) uiState = stateBuilder.dismissBottomSheet(uiState) startLoadingQuotesFromLastState(isSilent = true) } is SwapTransactionState.Error -> { uiState = stateBuilder.createErrorTransactionAlert( uiState = uiState, error = it, onDismiss = { uiState = stateBuilder.clearAlert(uiState) }, onSupportClick = ::onFailedTxEmailClick, isReverseSwapPossible = isReverseSwapPossible(), ) } SwapTransactionState.DemoMode -> { uiState = stateBuilder.createDemoModeAlert( uiState = uiState, onDismiss = { uiState = stateBuilder.clearAlert(uiState) }, isReverseSwapPossible = isReverseSwapPossible(), ) } } }
- MultilineLambdaItParameter:SwapModel.kt$SwapModel${ when (it) { is SwapTransactionState.TxSent -> { sendSuccessSwapEvent(fromCurrency.currency, fee.feeType) val url = getExplorerTransactionUrlUseCase( txHash = it.txHash, networkId = fromCurrency.currency.network.id, ).getOrElse { Timber.i("tx hash explore not supported") "" } updateWalletBalance() uiState = stateBuilder.createSuccessState( uiState = uiState, swapTransactionState = it, dataState = dataState, txUrl = url, onExploreClick = { if (it.txHash.isNotEmpty()) { urlOpener.openUrl(url) } analyticsEventHandler.send( event = SwapEvents.ButtonExplore(initialCurrencyFrom.symbol), ) }, onStatusClick = { val txExternalUrl = it.txExternalUrl if (!txExternalUrl.isNullOrBlank()) { urlOpener.openUrl(txExternalUrl) analyticsEventHandler.send( event = SwapEvents.ButtonStatus(initialCurrencyFrom.symbol), ) } }, ) sendSuccessEvent() swapRouter.openScreen(SwapNavScreen.Success) } SwapTransactionState.DemoMode -> { uiState = stateBuilder.createDemoModeAlert( uiState = uiState, onDismiss = { uiState = stateBuilder.clearAlert(uiState) }, isReverseSwapPossible = isReverseSwapPossible(), ) } is SwapTransactionState.Error -> { startLoadingQuotesFromLastState() uiState = stateBuilder.createErrorTransactionAlert( uiState = uiState, error = it, onDismiss = { uiState = stateBuilder.clearAlert(uiState) }, onSupportClick = ::onFailedTxEmailClick, isReverseSwapPossible = isReverseSwapPossible(), ) } } }
MultilineLambdaItParameter:TransactionCard.kt${ Text( text = it, color = TangemTheme.colors.text.tertiary, style = TangemTheme.typography.body2, ) }
MultilineLambdaItParameter:TransactionCard.kt${ Text( text = it, color = TangemTheme.colors.text.tertiary, style = TangemTheme.typography.body2, modifier = Modifier .align(Alignment.CenterVertically) .testTag(SwapTokenScreenTestTags.BALANCE), ) }
MultilineLambdaItParameter:TransactionCard.kt${ Text( text = it, color = TangemTheme.colors.text.tertiary, style = TangemTheme.typography.body2, modifier = Modifier.defaultMinSize(minHeight = TangemTheme.dimens.size20), ) }
diff --git a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/DefaultTokenDetailsComponent.kt b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/DefaultTokenDetailsComponent.kt
index 4f4dbe32e0..8c3ca7e009 100644
--- a/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/DefaultTokenDetailsComponent.kt
+++ b/features/tokendetails/impl/src/main/kotlin/com/tangem/feature/tokendetails/DefaultTokenDetailsComponent.kt
@@ -77,7 +77,7 @@ internal class DefaultTokenDetailsComponent @AssistedInject constructor(
params = YieldSupplyComponent.Params(
userWalletId = params.userWalletId,
cryptoCurrency = params.currency,
- handleNavigation = (params.navigationAction as? NavigationAction.YieldSupply)
+ shouldHandleNavigation = (params.navigationAction as? NavigationAction.YieldSupply)
?.isActive,
),
)
diff --git a/features/wallet/impl/detekt-baseline-debug.xml b/features/wallet/impl/detekt-baseline-debug.xml
index 7569e2d2a3..c3993c7c7e 100644
--- a/features/wallet/impl/detekt-baseline-debug.xml
+++ b/features/wallet/impl/detekt-baseline-debug.xml
@@ -5,7 +5,6 @@
BooleanPropertyNaming:DefaultUserWalletsFetcher.kt$DefaultUserWalletsFetcher$@Assisted("onlyMultiCurrency") private val onlyMultiCurrency: Boolean
BooleanPropertyNaming:DraggableItem.kt$DraggableItem$abstract val showShadow: Boolean
BooleanPropertyNaming:DraggableItem.kt$DraggableItem.RoundingMode$abstract val showGap: Boolean
- BooleanPropertyNaming:GetMultiWalletWarningsFactory.kt$GetMultiWalletWarningsFactory$val accessCodeSkipped = array[7] as Boolean
BooleanPropertyNaming:GetSingleWalletWarningsFactory.kt$GetSingleWalletWarningsFactory$private var readyForRateAppNotification = false
BooleanPropertyNaming:GetSingleWalletWarningsFactory.kt$GetSingleWalletWarningsFactory$val userHasWalletOrWallet2 = userWallets.filterIsInstance<UserWallet.Cold>().any { val typesResolver = it.scanResponse.cardTypesResolver typesResolver.isTangemWallet() || typesResolver.isWallet2() }
BooleanPropertyNaming:OrganizeTokensState.kt$OrganizeTokensState.ActionsConfig$val showApplyProgress: Boolean = false
@@ -77,7 +76,6 @@
MultilineLambdaItParameter:WalletModel.kt$WalletModel${ walletsUpdateActionResolver.resolve( wallets = it, currentState = stateHolder.value, ) }
MultilineLambdaItParameter:WalletNFTListSubscriber.kt$WalletNFTListSubscriber${ stateHolder.update( SetNFTCollectionsTransformer( userWalletId = userWallet.walletId, nftCollections = it, onItemClick = { clickIntents.onNFTClick(userWallet) }, ), ) }
MultilineLambdaItParameter:WalletNameMigrationUseCase.kt$WalletNameMigrationUseCase${ val defaultName = it.name val suggestedWalletName = suggestedWalletName(defaultName, existingNames) if (defaultName != suggestedWalletName) { userWalletsListRepository.saveWithoutLock(it.copy(name = suggestedWalletName), canOverride = true) } Timber.tag("Migrated names").e(it.walletId.toString() + " " + suggestedWalletName) }
- MultilineLambdaItParameter:WalletNotifications.kt${ // TODO develop promo banner general component when (it) { is WalletNotification.SwapPromo -> { // Use it on new promo action } is WalletNotification.NoteMigration -> { NoteMigrationNotification( config = it.config, modifier = modifier.animateItem(fadeInSpec = null, fadeOutSpec = null), ) } is WalletNotification.FinishWalletActivation -> { Notification( config = it.config, modifier = modifier.animateItem(fadeInSpec = null, fadeOutSpec = null), ) } else -> { Notification( config = it.config, modifier = modifier.animateItem(fadeInSpec = null, fadeOutSpec = null), iconTint = when (it) { is WalletNotification.Critical -> TangemTheme.colors.icon.warning is WalletNotification.Informational -> TangemTheme.colors.icon.accent is WalletNotification.RateApp -> TangemTheme.colors.icon.attention is WalletNotification.UnlockWallets -> TangemTheme.colors.icon.primary1 is WalletNotification.UsedOutdatedData -> TangemTheme.colors.text.attention else -> null }, ) } } }
MultilineLambdaItParameter:WalletScreen.kt${ PaddingValues( bottom = it.calculateBottomPadding() + marketHintAproxHeight + 52.dp, ) }
MultilineLambdaItParameter:WalletScreen.kt${ WalletSnackbarHost( snackbarHostState = it, event = state.event, modifier = Modifier .padding(bottom = TangemTheme.dimens.spacing4) .navigationBarsPadding(), ) }
MultilineLambdaItParameter:WalletScreen.kt${ balancesAndLimitsBlock( modifier = itemModifier, state = it.balancesAndLimitBlockState, ) }
@@ -89,7 +87,6 @@
MultilineLambdaItParameter:WalletWithFundsChecker.kt$WalletWithFundsChecker${ val amount = it.value.amount ?: return@any false !amount.isZero() }
MultilineLambdaItParameter:WalletsUpdateActionResolver.kt$WalletsUpdateActionResolver${ if (it.warnings.any { it is WalletNotification.FinishWalletActivation }) { it.walletCardState.id } else { null } }
NamedArguments:BasicAccountListSubscriber.kt$BasicAccountListSubscriber$updateContent(convertParams, appCurrency, yieldSupplyApyMap, stakingApyMap)
- NamedArguments:GetMultiWalletWarningsFactory.kt$GetMultiWalletWarningsFactory$addFinishWalletActivationNotification(userWallet, totalFiatBalance, clickIntents, accessCodeSkipped)
NamedArguments:GetMultiWalletWarningsFactory.kt$GetMultiWalletWarningsFactory$addInformationalNotifications(userWallet, cardTypesResolver, flattenCurrencies, clickIntents)
NamedArguments:GetMultiWalletWarningsFactory.kt$GetMultiWalletWarningsFactory$addWarningNotifications(cardTypesResolver, flattenCurrencies, isNeedToBackup, clickIntents)
NamedArguments:TangemSnapFlingBehavior.kt$HighVelocityApproachAnimation$animateDecay(offset, animationState, decayAnimationSpec, onAnimationStep)
diff --git a/features/yield-supply/api/detekt-baseline-debug.xml b/features/yield-supply/api/detekt-baseline-debug.xml
deleted file mode 100644
index 2c1d5f69ba..0000000000
--- a/features/yield-supply/api/detekt-baseline-debug.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- BooleanPropertyNaming:YieldSupplyComponent.kt$YieldSupplyComponent.Params$val handleNavigation: Boolean? = null
- UseEmptyCounterpart:YieldSupplyAnalytics.kt$YieldSupplyAnalytics$mapOf()
-
-
diff --git a/features/yield-supply/api/src/main/java/com/tangem/features/yield/supply/api/YieldSupplyComponent.kt b/features/yield-supply/api/src/main/java/com/tangem/features/yield/supply/api/YieldSupplyComponent.kt
index c2f5cf26f0..d1919f0781 100644
--- a/features/yield-supply/api/src/main/java/com/tangem/features/yield/supply/api/YieldSupplyComponent.kt
+++ b/features/yield-supply/api/src/main/java/com/tangem/features/yield/supply/api/YieldSupplyComponent.kt
@@ -10,7 +10,7 @@ interface YieldSupplyComponent : ComposableContentComponent {
data class Params(
val userWalletId: UserWalletId,
val cryptoCurrency: CryptoCurrency,
- val handleNavigation: Boolean? = null,
+ val shouldHandleNavigation: Boolean? = null,
)
interface Factory : ComponentFactory
diff --git a/features/yield-supply/api/src/main/java/com/tangem/features/yield/supply/api/analytics/YieldSupplyAnalytics.kt b/features/yield-supply/api/src/main/java/com/tangem/features/yield/supply/api/analytics/YieldSupplyAnalytics.kt
index 942e3a3d8a..37b00d61b2 100644
--- a/features/yield-supply/api/src/main/java/com/tangem/features/yield/supply/api/analytics/YieldSupplyAnalytics.kt
+++ b/features/yield-supply/api/src/main/java/com/tangem/features/yield/supply/api/analytics/YieldSupplyAnalytics.kt
@@ -8,7 +8,7 @@ import com.tangem.core.analytics.models.AnalyticsParam.Key.TOKEN_PARAM
sealed class YieldSupplyAnalytics(
event: String,
- params: Map = mapOf(),
+ params: Map = emptyMap(),
) : AnalyticsEvent(category = "Earning", event = event, params = params) {
data class EarningScreenInfoOpened(
diff --git a/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/main/model/YieldSupplyModel.kt b/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/main/model/YieldSupplyModel.kt
index 650ba7d090..900c7fecd8 100644
--- a/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/main/model/YieldSupplyModel.kt
+++ b/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/main/model/YieldSupplyModel.kt
@@ -24,11 +24,7 @@ import com.tangem.domain.tokens.GetSingleCryptoCurrencyStatusUseCase
import com.tangem.domain.wallets.usecase.GetUserWalletUseCase
import com.tangem.domain.yield.supply.YieldSupplyRepository
import com.tangem.domain.yield.supply.models.YieldSupplyEnterStatus
-import com.tangem.domain.yield.supply.usecase.YieldSupplyActivateUseCase
-import com.tangem.domain.yield.supply.usecase.YieldSupplyDeactivateUseCase
-import com.tangem.domain.yield.supply.usecase.YieldSupplyGetTokenStatusUseCase
-import com.tangem.domain.yield.supply.usecase.YieldSupplyIsAvailableUseCase
-import com.tangem.domain.yield.supply.usecase.YieldSupplyMinAmountUseCase
+import com.tangem.domain.yield.supply.usecase.*
import com.tangem.features.yield.supply.api.YieldSupplyComponent
import com.tangem.features.yield.supply.api.analytics.YieldSupplyAnalytics
import com.tangem.features.yield.supply.impl.R
@@ -271,8 +267,7 @@ internal class YieldSupplyModel @Inject constructor(
private fun loadActiveState(cryptoCurrencyStatus: CryptoCurrencyStatus, yieldSupplyStatus: YieldSupplyStatus) {
val cryptoCurrencyToken = cryptoCurrency as? CryptoCurrency.Token ?: return
val showWarningIcon = !yieldSupplyStatus.isAllowedToSpend
- val state = uiState.value
- val isShowInfoIconPrevState = when (state) {
+ val isShowInfoIconPrevState = when (val state = uiState.value) {
is YieldSupplyUM.Content -> state.showInfoIcon
else -> false
}