From 51ca58d89bffaf0c88cb3385a1884c875584efc0 Mon Sep 17 00:00:00 2001 From: Tangem Date: Tue, 8 Sep 2020 17:35:39 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tap/features/send/redux/SendReducer.kt | 4 ++-- .../features/send/redux/SendScreenAction.kt | 4 ++-- .../tap/features/send/redux/SendState.kt | 11 ++++++--- .../tap/features/send/ui/SendFragment.kt | 24 ++++++++++++++++++- .../stateSubscribers/SendStateSubscriber.kt | 10 ++++---- 5 files changed, 40 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/SendReducer.kt b/app/src/main/java/com/tangem/tap/features/send/redux/SendReducer.kt index 5eb886c5dd..7b67cb7880 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/SendReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/SendReducer.kt @@ -176,8 +176,8 @@ private fun handleFeeActionUi(action: FeeActionUi, sendState: SendState, state: is ToggleFeeLayoutVisibility -> { state.copy(visibility = if (state.visibility == View.VISIBLE) View.GONE else View.VISIBLE) } - is ChangeSelectedFee -> state.copy(selectedFeeId = action.id) - is ChangeIncludeFee -> state.copy(includeFeeIsChecked = action.isChecked) + is ChangeSelectedFee -> state.copy(feeType = action.feeType) + is ChangeIncludeFee -> state.copy(feeIsIncluded = action.isIncluded) } return updateLastState(sendState.copy(feeLayoutState = result), result) } diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/SendScreenAction.kt b/app/src/main/java/com/tangem/tap/features/send/redux/SendScreenAction.kt index 7bbb20261e..0544867508 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/SendScreenAction.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/SendScreenAction.kt @@ -50,6 +50,6 @@ sealed class AmountActionUi : SendScreenActionUi { // Fee sealed class FeeActionUi : SendScreenActionUi { object ToggleFeeLayoutVisibility : FeeActionUi() - data class ChangeSelectedFee(val id: Int) : FeeActionUi() - class ChangeIncludeFee(val isChecked: Boolean) : FeeActionUi() + data class ChangeSelectedFee(val feeType: FeeType) : FeeActionUi() + class ChangeIncludeFee(val isIncluded: Boolean) : FeeActionUi() } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/SendState.kt b/app/src/main/java/com/tangem/tap/features/send/redux/SendState.kt index 542699ca22..651d1f95bf 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/SendState.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/SendState.kt @@ -1,8 +1,8 @@ package com.tangem.tap.features.send.redux import android.view.View +import com.tangem.blockchain.common.AmountType import com.tangem.tap.common.entities.TapCurrency -import com.tangem.wallet.R import org.rekotlin.StateType import java.math.BigDecimal @@ -86,6 +86,7 @@ data class Value( data class AmountState( val etAmountFieldValue: String = BigDecimal.ZERO.toPlainString(), + val typeOfAmount: AmountType = AmountType.Coin, val cursorAtTheSamePosition: Boolean = true, val amountToSendCrypto: BigDecimal = BigDecimal.ZERO, val balance: BigDecimal = BigDecimal.ZERO, @@ -93,8 +94,12 @@ data class AmountState( val amountIsOverBalance: Boolean = false ) : StateType +enum class FeeType { + LOW, NORMAL, PRIORITY +} + data class FeeLayoutState( val visibility: Int = View.GONE, - val selectedFeeId: Int = R.id.chipNormal, - val includeFeeIsChecked: Boolean = false + val feeType: FeeType = FeeType.NORMAL, + val feeIsIncluded: Boolean = false ) : StateType \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/send/ui/SendFragment.kt b/app/src/main/java/com/tangem/tap/features/send/ui/SendFragment.kt index c5cb65e888..8e5f923e93 100644 --- a/app/src/main/java/com/tangem/tap/features/send/ui/SendFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/send/ui/SendFragment.kt @@ -17,6 +17,7 @@ import com.tangem.tap.features.send.BaseStoreFragment import com.tangem.tap.features.send.redux.AddressPayIdActionUi.* import com.tangem.tap.features.send.redux.AmountActionUi.* import com.tangem.tap.features.send.redux.FeeActionUi.* +import com.tangem.tap.features.send.redux.FeeType import com.tangem.tap.features.send.redux.MainCurrencyType import com.tangem.tap.features.send.redux.ReleaseSendState import com.tangem.tap.features.send.ui.stateSubscribers.SendStateSubscriber @@ -132,7 +133,7 @@ class SendFragment : BaseStoreFragment(R.layout.fragment_send) { store.dispatch(ToggleFeeLayoutVisibility) } chipGroup.setOnCheckedChangeListener { group, checkedId -> - store.dispatch(ChangeSelectedFee(checkedId)) + store.dispatch(ChangeSelectedFee(FeeUiHelper.idToFee(checkedId))) } swIncludeFee.setOnCheckedChangeListener { btn, isChecked -> store.dispatch(ChangeIncludeFee(isChecked)) @@ -172,5 +173,26 @@ fun EditText.inputedTextAsFlow(): Flow = callbackFlow { awaitClose { removeTextChangedListener(watcher) } } +class FeeUiHelper { + companion object { + fun feeToId(fee: FeeType): Int { + return when (fee) { + FeeType.LOW -> R.id.chipLow + FeeType.NORMAL -> R.id.chipNormal + FeeType.PRIORITY -> R.id.chipPriority + } + } + + fun idToFee(id: Int): FeeType { + return when (id) { + R.id.chipLow -> FeeType.LOW + R.id.chipNormal -> FeeType.NORMAL + R.id.chipPriority -> FeeType.PRIORITY + else -> FeeType.NORMAL + } + } + } +} + diff --git a/app/src/main/java/com/tangem/tap/features/send/ui/stateSubscribers/SendStateSubscriber.kt b/app/src/main/java/com/tangem/tap/features/send/ui/stateSubscribers/SendStateSubscriber.kt index 9111bf2703..4bbb6e84d0 100644 --- a/app/src/main/java/com/tangem/tap/features/send/ui/stateSubscribers/SendStateSubscriber.kt +++ b/app/src/main/java/com/tangem/tap/features/send/ui/stateSubscribers/SendStateSubscriber.kt @@ -12,6 +12,7 @@ import com.tangem.tap.features.send.redux.AddressPayIdVerifyAction.FailReason import com.tangem.tap.features.send.redux.AmountState import com.tangem.tap.features.send.redux.FeeLayoutState import com.tangem.tap.features.send.redux.SendState +import com.tangem.tap.features.send.ui.FeeUiHelper import com.tangem.tap.features.send.ui.SendFragment import com.tangem.wallet.R import kotlinx.android.synthetic.main.btn_expand_collapse.* @@ -74,13 +75,12 @@ class SendStateSubscriber(fragment: Fragment) : FragmentStateSubscriber