Skip to content

Commit c41fb2a

Browse files
authored
Merge pull request #906 from soramitsu/hotfix/validation
hotfix/validation
2 parents 432da4a + e414125 commit c41fb2a

File tree

6 files changed

+20
-15
lines changed

6 files changed

+20
-15
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ buildscript {
44
ext {
55
// App version
66
versionName = '2.2.3'
7-
versionCode = 91
7+
versionCode = 92
88

99
// SDK and tools
1010
compileSdkVersion = 33

feature-polkaswap-impl/src/main/kotlin/jp/co/soramitsu/polkaswap/impl/presentation/swap_tokens/SwapTokensViewModel.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -476,7 +476,7 @@ class SwapTokensViewModel @Inject constructor(
476476
val isToFeeAsset = toAsset.value?.token?.configuration?.id == feeAsset.token.configuration.id
477477

478478
return when {
479-
amountToSwap >= available -> {
479+
amountToSwap > available -> {
480480
SpendInsufficientBalanceException(resourceManager)
481481
}
482482
isToFeeAsset.not() && feeAsset.transferable <= fee -> {

feature-staking-impl/src/main/java/jp/co/soramitsu/staking/impl/presentation/staking/main/StakingViewStateOld.kt

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ package jp.co.soramitsu.staking.impl.presentation.staking.main
22

33
import androidx.lifecycle.LiveData
44
import androidx.lifecycle.MutableLiveData
5-
import java.math.BigDecimal
6-
import java.math.BigInteger
75
import jp.co.soramitsu.common.base.TitleAndMessage
86
import jp.co.soramitsu.common.mixin.api.Validatable
97
import jp.co.soramitsu.common.presentation.LoadingState
@@ -78,6 +76,8 @@ import kotlinx.coroutines.flow.mapNotNull
7876
import kotlinx.coroutines.flow.shareIn
7977
import kotlinx.coroutines.flow.stateIn
8078
import kotlinx.coroutines.launch
79+
import java.math.BigDecimal
80+
import java.math.BigInteger
8181
import jp.co.soramitsu.core.models.Asset as CoreAsset
8282

8383
@Deprecated("All ViewStates should be provided and created in staking type aware ViewModels")
@@ -727,9 +727,9 @@ class DelegatorViewState(
727727
collatorAddress = collator.collatorId.toHexString(true),
728728
collatorName = identity?.display ?: collatorIdHex,
729729
staked = staked.formatCryptoDetail(asset.token.configuration.symbolToShow),
730-
stakedFiat = staked.applyFiatRate(asset.fiatAmount)?.formatFiat(asset.token.fiatSymbol),
730+
stakedFiat = staked.applyFiatRate(asset.token.fiatRate)?.formatFiat(asset.token.fiatSymbol),
731731
rewardApy = rewardApy.formatAsPercentage(),
732-
rewardedFiat = rewarded.applyFiatRate(asset.fiatAmount)?.formatFiat(asset.token.fiatSymbol),
732+
rewardedFiat = rewarded.applyFiatRate(asset.token.fiatRate)?.formatFiat(asset.token.fiatSymbol),
733733
status = candidateInfo.toModelStatus(millisecondsTillTheEndOfRound, millisecondsTillCandidateWillLeave, isReadyToUnlock),
734734
candidateInfo
735735
)

feature-staking-impl/src/main/java/jp/co/soramitsu/staking/impl/presentation/validators/change/custom/review/ReviewCustomValidatorsFragment.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import dagger.hilt.android.AndroidEntryPoint
55
import jp.co.soramitsu.common.base.BaseFragment
66
import jp.co.soramitsu.common.utils.setTextColorRes
77
import jp.co.soramitsu.common.utils.toggle
8-
import jp.co.soramitsu.common.view.ButtonState
98
import jp.co.soramitsu.common.view.viewBinding
109
import jp.co.soramitsu.feature_staking_impl.R
1110
import jp.co.soramitsu.feature_staking_impl.databinding.FragmentReviewCustomValidatorsBinding
@@ -51,7 +50,7 @@ class ReviewCustomValidatorsFragment :
5150
binding.reviewCustomValidatorsAccounts.setTextColorRes(if (it.isOverflow) R.color.red else R.color.gray1)
5251
binding.reviewCustomValidatorsAccounts.text = it.selectedHeaderText
5352

54-
binding.reviewCustomValidatorsNext.setState(if (it.isOverflow) ButtonState.DISABLED else ButtonState.NORMAL)
53+
binding.reviewCustomValidatorsNext.setState(it.buttonState)
5554
binding.reviewCustomValidatorsNext.text = it.nextButtonText
5655
}
5756

feature-staking-impl/src/main/java/jp/co/soramitsu/staking/impl/presentation/validators/change/custom/review/ReviewCustomValidatorsViewModel.kt

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package jp.co.soramitsu.staking.impl.presentation.validators.change.custom.review
22

33
import dagger.hilt.android.lifecycle.HiltViewModel
4-
import javax.inject.Inject
54
import jp.co.soramitsu.common.address.AddressIconGenerator
65
import jp.co.soramitsu.common.base.BaseViewModel
76
import jp.co.soramitsu.common.resources.ResourceManager
87
import jp.co.soramitsu.common.utils.flowOf
98
import jp.co.soramitsu.common.utils.inBackground
9+
import jp.co.soramitsu.common.view.ButtonState
1010
import jp.co.soramitsu.feature_staking_impl.R
1111
import jp.co.soramitsu.staking.api.domain.model.Validator
1212
import jp.co.soramitsu.staking.impl.domain.StakingInteractor
@@ -27,6 +27,7 @@ import kotlinx.coroutines.flow.filterIsInstance
2727
import kotlinx.coroutines.flow.first
2828
import kotlinx.coroutines.flow.map
2929
import kotlinx.coroutines.launch
30+
import javax.inject.Inject
3031
import javax.inject.Named
3132

3233
@HiltViewModel
@@ -55,10 +56,13 @@ class ReviewCustomValidatorsViewModel @Inject constructor(
5556
stakingRelayChainScenarioInteractor.maxValidatorsPerNominator()
5657
}.share()
5758

59+
val isInEditMode = MutableStateFlow(false)
60+
5861
val selectionStateFlow = combine(
5962
selectedValidators,
60-
maxValidatorsPerNominatorFlow
61-
) { validators, maxValidatorsPerNominator ->
63+
maxValidatorsPerNominatorFlow,
64+
isInEditMode
65+
) { validators, maxValidatorsPerNominator, isInEditMode ->
6266
val isOverflow = validators.size > maxValidatorsPerNominator
6367

6468
ValidatorsSelectionState(
@@ -68,7 +72,8 @@ class ReviewCustomValidatorsViewModel @Inject constructor(
6872
resourceManager.getString(R.string.staking_custom_proceed_button_disabled_title, maxValidatorsPerNominator)
6973
} else {
7074
resourceManager.getString(R.string.common_continue)
71-
}
75+
},
76+
buttonState = if (isOverflow || isInEditMode) ButtonState.DISABLED else ButtonState.NORMAL
7277
)
7378
}
7479

@@ -85,8 +90,6 @@ class ReviewCustomValidatorsViewModel @Inject constructor(
8590
.inBackground()
8691
.share()
8792

88-
val isInEditMode = MutableStateFlow(false)
89-
9093
fun deleteClicked(validatorModel: ValidatorModel) {
9194
launch {
9295
val validators = selectedValidators.first()
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
package jp.co.soramitsu.staking.impl.presentation.validators.change.custom.review.model
22

3+
import jp.co.soramitsu.common.view.ButtonState
4+
35
class ValidatorsSelectionState(
46
val selectedHeaderText: String,
57
val nextButtonText: String,
6-
val isOverflow: Boolean
8+
val isOverflow: Boolean,
9+
val buttonState: ButtonState
710
)

0 commit comments

Comments
 (0)