diff --git a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/send/confirm/model/SendConfirmModel.kt b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/send/confirm/model/SendConfirmModel.kt index 2286922911..3411103f5c 100644 --- a/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/send/confirm/model/SendConfirmModel.kt +++ b/features/send-v2/impl/src/main/java/com/tangem/features/send/v2/send/confirm/model/SendConfirmModel.kt @@ -23,7 +23,6 @@ import com.tangem.core.ui.HoldToConfirmButtonFeatureToggles import com.tangem.core.ui.extensions.TextReference import com.tangem.core.ui.extensions.resourceReference import com.tangem.core.ui.extensions.stringReference -import com.tangem.core.ui.extensions.wrappedList import com.tangem.domain.account.featuretoggle.AccountsFeatureToggles import com.tangem.domain.account.status.usecase.ManageCryptoCurrenciesUseCase import com.tangem.domain.balancehiding.GetBalanceHidingSettingsUseCase @@ -626,10 +625,7 @@ internal class SendConfirmModel @Inject constructor( private fun getPrimaryButtonText(confirmUM: ConfirmUM, isHoldToConfirm: Boolean): TextReference { return when { - isHoldToConfirm -> resourceReference( - id = com.tangem.core.ui.R.string.common_hold_to, - formatArgs = wrappedList(resourceReference(R.string.common_send)), - ) + isHoldToConfirm -> resourceReference(R.string.common_send) confirmUM is ConfirmUM.Success -> resourceReference(R.string.common_close) confirmUM is ConfirmUM.Content && confirmUM.isSending -> resourceReference(R.string.send_sending) else -> resourceReference(R.string.common_send) diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/StakingStateController.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/StakingStateController.kt index e8ee07c6e8..00409eed5c 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/StakingStateController.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/StakingStateController.kt @@ -18,6 +18,7 @@ import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update import com.tangem.core.decompose.di.ModelScoped +import com.tangem.core.ui.HoldToConfirmButtonFeatureToggles import com.tangem.domain.models.wallet.isColdWallet import com.tangem.domain.models.wallet.isHotWallet import javax.inject.Inject @@ -25,6 +26,7 @@ import javax.inject.Inject @ModelScoped internal class StakingStateController @Inject constructor( urlOpener: UrlOpener, + private val holdToConfirmButtonFeatureToggles: HoldToConfirmButtonFeatureToggles, ) { val value: StakingUiState get() = uiState.value @@ -40,7 +42,8 @@ internal class StakingStateController @Inject constructor( mutableUiState.update { state -> state.copy( showColdWalletInteractionIcon = userWallet.isColdWallet, - shouldShowHoldToConfirmButton = userWallet.isHotWallet, + shouldShowHoldToConfirmButton = holdToConfirmButtonFeatureToggles.isHoldToConfirmEnabled && + userWallet.isHotWallet, ) } } diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetButtonsStateTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetButtonsStateTransformer.kt index 04a86dbec7..00b3379362 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetButtonsStateTransformer.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetButtonsStateTransformer.kt @@ -7,7 +7,6 @@ import com.tangem.core.navigation.url.UrlOpener import com.tangem.core.ui.R import com.tangem.core.ui.extensions.TextReference import com.tangem.core.ui.extensions.resourceReference -import com.tangem.core.ui.extensions.wrappedList import com.tangem.domain.staking.model.stakekit.action.StakingActionCommonType import com.tangem.features.staking.impl.presentation.state.* import com.tangem.features.staking.impl.presentation.state.utils.getPendingActionTitle @@ -50,7 +49,7 @@ internal class SetButtonsStateTransformer( val isIconVisible = isConfirmation && !isCompleted && !isHoldToConfirm val isPrimaryButtonDisabled = prevState.isPrimaryButtonDisabled() return NavigationButton( - textReference = prevState.getButtonText(isHoldToConfirm), + textReference = prevState.getButtonText(), iconRes = R.drawable.ic_tangem_24.takeIf { prevState.showColdWalletInteractionIcon }, isDimmed = isPrimaryButtonDisabled, isIconVisible = isIconVisible, @@ -92,7 +91,7 @@ internal class SetButtonsStateTransformer( else -> true } - private fun StakingUiState.getButtonText(isHoldToConfirm: Boolean): TextReference { + private fun StakingUiState.getButtonText(): TextReference { return when (currentStep) { StakingStep.InitialInfo -> { val initialState = initialInfoState as? StakingStates.InitialInfoState.Data @@ -103,7 +102,7 @@ internal class SetButtonsStateTransformer( } } StakingStep.Success -> resourceReference(R.string.common_close) - StakingStep.Confirmation -> getConfirmationButtonText(isHoldToConfirm) + StakingStep.Confirmation -> getConfirmationButtonText() StakingStep.Validators -> resourceReference(R.string.common_continue) StakingStep.Amount, StakingStep.RestakeValidator, @@ -112,7 +111,7 @@ internal class SetButtonsStateTransformer( } } - private fun StakingUiState.getConfirmationButtonText(isHoldToConfirm: Boolean): TextReference { + private fun StakingUiState.getConfirmationButtonText(): TextReference { val confirmationState = confirmationState as? StakingStates.ConfirmationState.Data ?: return resourceReference(R.string.common_close) val amountState = amountState as? AmountState.Data @@ -125,10 +124,8 @@ internal class SetButtonsStateTransformer( } } - val baseText = getBaseActionText(confirmationState) - ?: return resourceReference(R.string.common_close) - - return baseText.wrapWithHoldToIf(isHoldToConfirm) + return getBaseActionText(confirmationState) + ?: resourceReference(R.string.common_close) } private fun StakingUiState.getBaseActionText( @@ -139,12 +136,6 @@ internal class SetButtonsStateTransformer( is StakingActionCommonType.Pending -> confirmationState.pendingAction?.type.getPendingActionTitle() } - private fun TextReference.wrapWithHoldToIf(condition: Boolean): TextReference = if (condition) { - resourceReference(id = R.string.common_hold_to, formatArgs = wrappedList(this)) - } else { - this - } - private fun StakingUiState.onPrimaryClick() { when (currentStep) { StakingStep.InitialInfo -> clickIntents.onNextClick() diff --git a/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/sendviaswap/confirm/model/SendWithSwapConfirmModel.kt b/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/sendviaswap/confirm/model/SendWithSwapConfirmModel.kt index ca0ed8b981..6fdf6bdb46 100644 --- a/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/sendviaswap/confirm/model/SendWithSwapConfirmModel.kt +++ b/features/swap-v2/impl/src/main/java/com/tangem/features/swap/v2/impl/sendviaswap/confirm/model/SendWithSwapConfirmModel.kt @@ -21,7 +21,6 @@ import com.tangem.core.decompose.navigation.Router import com.tangem.core.ui.HoldToConfirmButtonFeatureToggles import com.tangem.core.ui.extensions.TextReference import com.tangem.core.ui.extensions.resourceReference -import com.tangem.core.ui.extensions.wrappedList import com.tangem.domain.account.status.usecase.GetAccountCurrencyByAddressUseCase import com.tangem.domain.express.models.ExpressOperationType import com.tangem.domain.express.models.ExpressProviderType @@ -550,10 +549,7 @@ internal class SendWithSwapConfirmModel @Inject constructor( private fun getPrimaryButtonText(confirmUM: ConfirmUM, isHoldToConfirm: Boolean): TextReference { return when { - isHoldToConfirm -> resourceReference( - id = com.tangem.core.ui.R.string.common_hold_to, - formatArgs = wrappedList(resourceReference(R.string.common_send)), - ) + isHoldToConfirm -> resourceReference(R.string.common_send) confirmUM is ConfirmUM.Success -> resourceReference(R.string.common_close) confirmUM is ConfirmUM.Content && confirmUM.isTransactionInProcess -> resourceReference(R.string.send_sending) diff --git a/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/SwapScreenContent.kt b/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/SwapScreenContent.kt index e55c8398bf..b4d3c15097 100644 --- a/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/SwapScreenContent.kt +++ b/features/swap/impl/src/main/java/com/tangem/feature/swap/ui/SwapScreenContent.kt @@ -383,10 +383,7 @@ private fun MainButton(state: SwapStateHolder) { state.swapButton.isHoldToConfirm -> { HoldToConfirmButton( modifier = Modifier.fillMaxWidth(), - text = stringResourceSafe( - R.string.common_hold_to, - stringResourceSafe(id = R.string.swapping_swap_action), - ), + text = stringResourceSafe(R.string.swapping_swap_action), enabled = state.swapButton.isEnabled, onConfirm = state.swapButton.onClick, isLoading = state.swapButton.isInProgress, diff --git a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/common/WcTransactionRequestButtons.kt b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/common/WcTransactionRequestButtons.kt index 199cc48016..8f5a202a76 100644 --- a/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/common/WcTransactionRequestButtons.kt +++ b/features/walletconnect/impl/src/main/kotlin/com/tangem/features/walletconnect/transaction/ui/common/WcTransactionRequestButtons.kt @@ -12,7 +12,6 @@ import com.tangem.core.ui.components.HoldToConfirmButton import com.tangem.core.ui.components.PrimaryButton import com.tangem.core.ui.components.PrimaryButtonIconEnd import com.tangem.core.ui.components.SecondaryButton -import com.tangem.core.ui.R as CoreR import com.tangem.core.ui.extensions.TextReference import com.tangem.core.ui.extensions.resolveReference import com.tangem.core.ui.extensions.stringResourceSafe @@ -55,10 +54,7 @@ internal fun WcTransactionRequestButtons( isHoldToConfirmEnabled -> { HoldToConfirmButton( modifier = buttonModifier, - text = stringResourceSafe( - CoreR.string.common_hold_to, - activeButtonText.resolveReference(), - ), + text = activeButtonText.resolveReference(), onConfirm = onClickActiveButton, isLoading = isLoading, enabled = enabled, diff --git a/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/subcomponents/approve/YieldSupplyApproveComponent.kt b/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/subcomponents/approve/YieldSupplyApproveComponent.kt index f56edfc633..dc2ffd7777 100644 --- a/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/subcomponents/approve/YieldSupplyApproveComponent.kt +++ b/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/subcomponents/approve/YieldSupplyApproveComponent.kt @@ -20,7 +20,6 @@ import com.tangem.core.decompose.context.child import com.tangem.core.decompose.model.getOrCreateModel import com.tangem.core.ui.components.HoldToConfirmButton import com.tangem.core.ui.components.PrimaryButtonIconEnd -import com.tangem.core.ui.R as CoreR import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfigContent import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheetTitle @@ -82,10 +81,7 @@ internal class YieldSupplyApproveComponent( if (state.isHoldToConfirmEnabled) { HoldToConfirmButton( - text = stringResourceSafe( - CoreR.string.common_hold_to, - stringResourceSafe(R.string.common_confirm), - ), + text = stringResourceSafe(R.string.common_confirm), onConfirm = model::onClick, enabled = state.isPrimaryButtonEnabled, isLoading = state.isTransactionSending, diff --git a/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/subcomponents/startearning/YieldSupplyStartEarningComponent.kt b/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/subcomponents/startearning/YieldSupplyStartEarningComponent.kt index c7957a5d41..c561bab7ca 100644 --- a/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/subcomponents/startearning/YieldSupplyStartEarningComponent.kt +++ b/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/subcomponents/startearning/YieldSupplyStartEarningComponent.kt @@ -26,7 +26,6 @@ import com.tangem.core.ui.extensions.stringResourceSafe import com.tangem.core.ui.res.TangemTheme import com.tangem.domain.models.currency.CryptoCurrency import com.tangem.domain.models.wallet.UserWalletId -import com.tangem.core.ui.R as CoreR import com.tangem.features.yield.supply.impl.R import com.tangem.features.yield.supply.impl.common.entity.YieldSupplyActionUM import com.tangem.features.yield.supply.impl.common.entity.YieldSupplyFeeUM @@ -114,10 +113,7 @@ internal class YieldSupplyStartEarningComponent( if (state.isHoldToConfirmEnabled) { HoldToConfirmButton( - text = stringResourceSafe( - CoreR.string.common_hold_to, - stringResourceSafe(R.string.yield_module_start_earning), - ), + text = stringResourceSafe(R.string.yield_module_start_earning), onConfirm = model::onClick, enabled = state.isPrimaryButtonEnabled, isLoading = state.isTransactionSending, diff --git a/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/subcomponents/stopearning/YieldSupplyStopEarningComponent.kt b/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/subcomponents/stopearning/YieldSupplyStopEarningComponent.kt index eae26ea8e1..58c0a5e000 100644 --- a/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/subcomponents/stopearning/YieldSupplyStopEarningComponent.kt +++ b/features/yield-supply/impl/src/main/java/com/tangem/features/yield/supply/impl/subcomponents/stopearning/YieldSupplyStopEarningComponent.kt @@ -21,7 +21,6 @@ import com.tangem.core.decompose.context.child import com.tangem.core.decompose.model.getOrCreateModel import com.tangem.core.ui.components.HoldToConfirmButton import com.tangem.core.ui.components.PrimaryButtonIconEnd -import com.tangem.core.ui.R as CoreR import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfigContent import com.tangem.core.ui.components.bottomsheets.modal.TangemModalBottomSheetTitle @@ -86,10 +85,7 @@ internal class YieldSupplyStopEarningComponent( if (state.isHoldToConfirmEnabled) { HoldToConfirmButton( - text = stringResourceSafe( - CoreR.string.common_hold_to, - stringResourceSafe(R.string.common_confirm), - ), + text = stringResourceSafe(R.string.common_confirm), onConfirm = model::onClick, enabled = state.isPrimaryButtonEnabled, isLoading = state.isTransactionSending,