diff --git a/data/staking/src/main/java/com/tangem/data/staking/converters/YieldConverter.kt b/data/staking/src/main/java/com/tangem/data/staking/converters/YieldConverter.kt index 7499cb4a34..8489a8772d 100644 --- a/data/staking/src/main/java/com/tangem/data/staking/converters/YieldConverter.kt +++ b/data/staking/src/main/java/com/tangem/data/staking/converters/YieldConverter.kt @@ -29,8 +29,9 @@ class YieldConverter( validators = value.validators .asSequence() .filter { it.status == ValidatorStatusDTO.ACTIVE } - .sortedByDescending { it.apr } .map { convertValidator(it) } + .sortedByDescending { it.isStrategicPartner } + .sortedByDescending { it.apr } .toImmutableList(), isAvailable = value.isAvailable, ) diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/stub/StakingClickIntentsStub.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/stub/StakingClickIntentsStub.kt index 66ec803e8a..6c4009304a 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/stub/StakingClickIntentsStub.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/stub/StakingClickIntentsStub.kt @@ -33,6 +33,8 @@ internal object StakingClickIntentsStub : StakingClickIntents { override fun onInfoClick(infoType: InfoType) {} + override fun onEnterClick() {} + override fun onAmountValueChange(value: String) {} override fun onAmountPasteTriggerDismiss() {} 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 ea4406d986..52251d7408 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 @@ -140,10 +140,7 @@ internal class SetButtonsStateTransformer( private fun StakingUiState.onPrimaryClick() { when (currentStep) { - StakingStep.InitialInfo -> { - clickIntents.onAmountValueChange("") // reset amount state - clickIntents.onNextClick(StakingActionCommonType.ENTER) - } + StakingStep.InitialInfo -> clickIntents.onEnterClick() StakingStep.Validators -> { if (confirmationState is StakingStates.ConfirmationState.Data) { clickIntents.onNextClick( @@ -154,9 +151,7 @@ internal class SetButtonsStateTransformer( clickIntents.onNextClick() } } - StakingStep.Amount -> { - clickIntents.onNextClick() - } + StakingStep.Amount -> clickIntents.onNextClick() StakingStep.Confirmation -> onConfirmationClick() StakingStep.RewardsValidators -> Unit } diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetConfirmationStateResetAssentTransformer.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetConfirmationStateResetAssentTransformer.kt index a3b203d9eb..ee866db72c 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetConfirmationStateResetAssentTransformer.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/state/transformers/SetConfirmationStateResetAssentTransformer.kt @@ -3,7 +3,6 @@ package com.tangem.features.staking.impl.presentation.state.transformers import com.tangem.features.staking.impl.presentation.state.InnerConfirmationStakingState import com.tangem.features.staking.impl.presentation.state.StakingStates import com.tangem.features.staking.impl.presentation.state.StakingUiState -import com.tangem.features.staking.impl.presentation.state.ValidatorState import com.tangem.utils.transformer.Transformer internal object SetConfirmationStateResetAssentTransformer : Transformer { @@ -14,7 +13,7 @@ internal object SetConfirmationStateResetAssentTransformer : Transformer?) override fun onAmountNext() = onNextClick(actionTypeToOverwrite = null) diff --git a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/viewmodel/StakingViewModel.kt b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/viewmodel/StakingViewModel.kt index 2c0c1833ed..244b8b108d 100644 --- a/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/viewmodel/StakingViewModel.kt +++ b/features/staking/impl/src/main/java/com/tangem/features/staking/impl/presentation/viewmodel/StakingViewModel.kt @@ -388,6 +388,27 @@ internal class StakingViewModel @Inject constructor( ) } + override fun onEnterClick() { + onAmountValueChange("") // reset amount state + + // TODO refactor in [REDACTED_JIRA] + val confirmationState = value.confirmationState as? StakingStates.ConfirmationState.Data + val filteredValidator = yield.validators.filter { it.preferred } + stateController.update { + value.copy( + confirmationState = confirmationState?.copy( + validatorState = ValidatorState.Content( + isClickable = true, + chosenValidator = filteredValidator[0], + availableValidators = filteredValidator, + ), + ) as StakingStates.ConfirmationState, + ) + } + + onNextClick(StakingActionCommonType.ENTER) + } + override fun onAmountValueChange(value: String) { stateController.update(AmountChangeStateTransformer(cryptoCurrencyStatus, value, yield)) }