From 71a15f5114b36ad022a5a86862395e53d5967916 Mon Sep 17 00:00:00 2001 From: Tangem Date: Mon, 14 Sep 2020 18:32:29 +0300 Subject: [PATCH] Updated on 2026-08-14 --- .../tap/features/send/BaseStoreFragment.kt | 2 +- .../send/redux/reducers/ReceiptReducer.kt | 39 ++++++++++++++----- .../send/redux/states/ReceiptState.kt | 1 - .../tap/features/send/ui/SendFragment.kt | 6 ++- .../stateSubscribers/SendStateSubscriber.kt | 1 - app/src/main/res/layout/fragment_send.xml | 1 - .../main/res/layout/layout_send_amount.xml | 2 +- 7 files changed, 36 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/com/tangem/tap/features/send/BaseStoreFragment.kt b/app/src/main/java/com/tangem/tap/features/send/BaseStoreFragment.kt index 83182d57ac..fc2fef7c7b 100644 --- a/app/src/main/java/com/tangem/tap/features/send/BaseStoreFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/send/BaseStoreFragment.kt @@ -20,7 +20,7 @@ abstract class BaseStoreFragment(layoutId: Int) : Fragment(layoutId) { abstract fun subscribeToStore() - private lateinit var mainView: View + protected lateinit var mainView: View protected val storeSubscribersList = mutableListOf>() override fun onCreate(savedInstanceState: Bundle?) { diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/ReceiptReducer.kt b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/ReceiptReducer.kt index 298ee72c16..0776c99fe4 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/reducers/ReceiptReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/reducers/ReceiptReducer.kt @@ -30,14 +30,14 @@ class ReceiptReducer : SendInternalReducer { val layoutType = determineLayoutType(amountState.mainCurrency.value, amountState.typeOfAmount) val symbols = determineSymbols(wallet) + val showBlank = !sendState.isReadyToSend() val result = state.copy( visibleTypeOfReceipt = layoutType, mainCurrencyType = sendState.amountState.mainCurrency, - mainLayoutIsVisible = sendState.isReadyToSend(), - fiat = createFiatType(converter, amountState, feeState, symbols), - crypto = createCryptoType(converter, amountState, feeState, symbols), - tokenFiat = createTokenFiatType(converter, amountState, feeState, symbols), - tokenCrypto = createTokenCryptoType(converter, amountState, feeState, symbols) + fiat = createFiatType(converter, amountState, feeState, symbols, showBlank), + crypto = createCryptoType(converter, amountState, feeState, symbols, showBlank), + tokenFiat = createTokenFiatType(converter, amountState, feeState, symbols, showBlank), + tokenCrypto = createTokenCryptoType(converter, amountState, feeState, symbols, showBlank) ) return updateLastState(sendState.copy(receiptState = result), result) } @@ -46,11 +46,16 @@ class ReceiptReducer : SendInternalReducer { converter: CurrencyConverter, amountState: AmountState, feeState: FeeState, - symbols: ReceiptSymbols + symbols: ReceiptSymbols, + showBlank: Boolean ): ReceiptFiat { val feeCrypto = feeState.getCurrentFee() val feeFiat = converter.toFiat(feeCrypto) + if (showBlank) { + return ReceiptFiat("0", feeFiat.stripZeroPlainString(), feeFiat.stripZeroPlainString(), "0", symbols) + } + return if (feeState.feeIsIncluded) { val amountFiat = converter.toFiat(amountState.amountToSendCrypto.minus(feeCrypto)) val totalFiat = converter.toFiat(amountState.amountToSendCrypto) @@ -79,10 +84,15 @@ class ReceiptReducer : SendInternalReducer { converter: CurrencyConverter, amountState: AmountState, feeState: FeeState, - symbols: ReceiptSymbols + symbols: ReceiptSymbols, + showBlank: Boolean ): ReceiptCrypto { val feeCrypto = feeState.getCurrentFee() + if (showBlank) { + return ReceiptCrypto("0", feeCrypto.stripZeroPlainString(), "0", converter.toFiat(feeCrypto).stripZeroPlainString(), "0", symbols) + } + if (feeState.feeIsIncluded) { return ReceiptCrypto( amountCrypto = amountState.amountToSendCrypto.minus(feeCrypto).stripZeroPlainString(), @@ -109,11 +119,17 @@ class ReceiptReducer : SendInternalReducer { converter: CurrencyConverter, amountState: AmountState, feeState: FeeState, - symbols: ReceiptSymbols + symbols: ReceiptSymbols, + showBlank: Boolean ): ReceiptTokenFiat { val feeCrypto = feeState.getCurrentFee() val amountFiat = converter.toFiat(amountState.amountToSendCrypto) val feeFiat = converter.toFiat(feeCrypto) + + if (showBlank) { + return ReceiptTokenFiat("0", feeFiat.stripZeroPlainString(), "0", "0", "0", symbols) + } + return ReceiptTokenFiat( amountFiat = amountFiat.stripZeroPlainString(), feeFiat = feeFiat.stripZeroPlainString(), @@ -128,10 +144,15 @@ class ReceiptReducer : SendInternalReducer { converter: CurrencyConverter, amountState: AmountState, feeState: FeeState, - symbols: ReceiptSymbols + symbols: ReceiptSymbols, + showBlank: Boolean ): ReceiptTokenCrypto { val feeCrypto = feeState.getCurrentFee() val totalFiat = converter.toFiat(amountState.amountToSendCrypto).plus(converter.toFiat(feeCrypto)) + if (showBlank) { + return ReceiptTokenCrypto("0", feeCrypto.stripZeroPlainString(), "0", symbols) + } + return ReceiptTokenCrypto( amountToken = amountState.amountToSendCrypto.stripZeroPlainString(), feeCrypto = feeCrypto.stripZeroPlainString(), diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/states/ReceiptState.kt b/app/src/main/java/com/tangem/tap/features/send/redux/states/ReceiptState.kt index dd9f438b7d..79bd6866e8 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/states/ReceiptState.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/states/ReceiptState.kt @@ -14,7 +14,6 @@ data class ReceiptState( val tokenFiat: ReceiptTokenFiat? = null, val tokenCrypto: ReceiptTokenCrypto? = null, val mainCurrencyType: Value? = null, - val mainLayoutIsVisible: Boolean = false, ) : StateType data class ReceiptSymbols( 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 b1c793b617..04c4888ec0 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 @@ -96,11 +96,13 @@ class SendFragment : BaseStoreFragment(R.layout.fragment_send) { store.dispatch(ChangeAddressOrPayId(scannedCode)) store.dispatch(TruncateOrRestore(!etAddressOrPayId.isFocused)) - view?.postDelayed(200) { store.dispatch(FeeAction.RequestFee) } + mainView.postDelayed(200) { store.dispatch(FeeAction.RequestFee) } } private fun setupAmountLayout() { store.dispatch(SetMainCurrency(restoreMainCurrency())) + mainView.postDelayed(200) { store.dispatch(ReceiptAction.RefreshReceipt) } + tvAmountCurrency.setOnClickListener { store.dispatch(ToggleMainCurrency) store.dispatch(ReceiptAction.RefreshReceipt) @@ -142,7 +144,7 @@ class SendFragment : BaseStoreFragment(R.layout.fragment_send) { val prevFocusChangeListener = etAmountToSend.onFocusChangeListener etAmountToSend.setOnFocusChangeListener { v, hasFocus -> prevFocusChangeListener.onFocusChange(v, hasFocus) - if (hasFocus && etAmountToSend.text?.toString() == "0") etAmountToSend.setText("") +// if (hasFocus && etAmountToSend.text?.toString() == "0") etAmountToSend.setText("") if (!hasFocus && etAmountToSend.text?.toString() == "") etAmountToSend.setText("0") } 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 d42f3bf384..9fc85dbecb 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 @@ -162,7 +162,6 @@ class SendStateSubscriber(fragment: BaseStoreFragment) : FragmentStateSubscriber val totalTokenLayout = fg.flTotalTokenCrypto as ViewGroup fun getString(id: Int): String = mainLayout.context.getString(id) - mainLayout.show(state.mainLayoutIsVisible) when (state.visibleTypeOfReceipt) { ReceiptLayoutType.FIAT -> { val receipt = state.fiat ?: return diff --git a/app/src/main/res/layout/fragment_send.xml b/app/src/main/res/layout/fragment_send.xml index e2ad6d3337..b250e401ff 100644 --- a/app/src/main/res/layout/fragment_send.xml +++ b/app/src/main/res/layout/fragment_send.xml @@ -71,7 +71,6 @@ android:layout_height="wrap_content" android:layout_marginTop="32dp" android:layout_marginBottom="24dp" - android:visibility="gone" tools:visibility="visible" />