diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletReducer.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletReducer.kt index b8f66e0aeb..e7a74fc0fe 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletReducer.kt @@ -52,7 +52,10 @@ private fun internalReduce(action: Action, state: AppState): WalletState { addressData = addressData, currencyData = BalanceWidgetData( status = BalanceStatus.Unreachable, - currency = wallet?.blockchain?.fullName), + currency = wallet?.blockchain?.fullName, + token = wallet?.token?.symbol?.let { + TokenData("", tokenSymbol = it) + }), mainButton = WalletMainButton.SendButton(false) ) } @@ -83,7 +86,10 @@ private fun internalReduce(action: Action, state: AppState): WalletState { cardImage = cardImage, currencyData = BalanceWidgetData( BalanceStatus.Loading, - wallet?.blockchain?.fullName + wallet?.blockchain?.fullName, + token = wallet?.token?.symbol?.let { + TokenData("", tokenSymbol = it) + } ), addressData = addressData, mainButton = WalletMainButton.SendButton(false) diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/BalanceWidget.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/BalanceWidget.kt index 65c7679e62..cc65bff46d 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/BalanceWidget.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/BalanceWidget.kt @@ -8,7 +8,6 @@ import com.tangem.wallet.R import kotlinx.android.synthetic.main.card_balance.* import kotlinx.android.synthetic.main.layout_balance.* import kotlinx.android.synthetic.main.layout_balance_error.* -import kotlinx.android.synthetic.main.layout_token.view.* enum class BalanceStatus { VerifiedOnline, @@ -50,20 +49,21 @@ class BalanceWidget( fragment.l_balance.show() fragment.l_balance_error.hide() fragment.tv_fiat_amount.hide() - fragment.l_token.hide() fragment.tv_currency.text = data.currency fragment.tv_amount.text = "" showStatus(R.id.tv_status_loading) + + if (data.token != null) { + showBalanceWithToken(data, false) + } else { + showBalanceWithoutToken(data, false) + } } BalanceStatus.VerifiedOnline, BalanceStatus.TransactionInProgress -> { fragment.l_balance.show() fragment.l_balance_error.hide() - fragment.tv_currency.text = data.currency - fragment.tv_amount.text = data.amount - fragment.tv_fiat_amount.show() - fragment.tv_fiat_amount.text = data.fiatAmount val statusView = if (data.status == BalanceStatus.VerifiedOnline) { R.id.tv_status_verified } else { @@ -75,22 +75,21 @@ class BalanceWidget( fragment.tv_status_error_message.hide() if (data.token != null) { - fragment.l_token.show() - fragment.l_token.tv_token_symbol.text = data.token.tokenSymbol - fragment.l_token.tv_token_amount.text = data.token.amount - fragment.l_token.tv_token_fiat_amount.text = data.token.fiatAmount + showBalanceWithToken(data, true) } else { - fragment.l_token.hide() + showBalanceWithoutToken(data, true) } } BalanceStatus.Unreachable -> { fragment.l_balance.show() fragment.l_balance_error.hide() - fragment.l_token.hide() fragment.tv_fiat_amount.hide() + fragment.group_base_currency.hide() - fragment.tv_currency.text = data.currency + val currency = if (data.token != null) data.token.tokenSymbol else data.currency + fragment.tv_currency.text = currency fragment.tv_amount.text = "" + fragment.tv_status_error_message.text = data.errorMessage fragment.tv_status_error.text = fragment.getString(R.string.wallet_balance_blockchain_unreachable) @@ -129,4 +128,26 @@ class BalanceWidget( fragment.tv_status_loading.show(viewRes == R.id.tv_status_loading) fragment.tv_status_verified.show(viewRes == R.id.tv_status_verified) } + + private fun showBalanceWithToken(data: BalanceWidgetData, showAmount: Boolean) { + fragment.group_base_currency.show() + fragment.tv_currency.text = data.token?.tokenSymbol + fragment.tv_base_currency.text = data.currency + fragment.tv_amount.text = if (showAmount) data.token?.amount else "" + fragment.tv_base_amount.text = if (showAmount) data.amount else "" + if (showAmount) { + fragment.tv_fiat_amount.show() + fragment.tv_fiat_amount.text = data.token?.fiatAmount + } + } + + private fun showBalanceWithoutToken(data: BalanceWidgetData, showAmount: Boolean) { + fragment.group_base_currency.hide() + fragment.tv_currency.text = data.currency + fragment.tv_amount.text = if (showAmount) data.amount else "" + if (showAmount) { + fragment.tv_fiat_amount.show() + fragment.tv_fiat_amount.text = data.fiatAmount + } + } } \ No newline at end of file diff --git a/app/src/main/res/layout/layout_balance.xml b/app/src/main/res/layout/layout_balance.xml index de3660b802..b4ac0497dd 100644 --- a/app/src/main/res/layout/layout_balance.xml +++ b/app/src/main/res/layout/layout_balance.xml @@ -103,10 +103,10 @@ app:autoSizeMinTextSize="12sp" app:autoSizeStepGranularity="1sp" app:autoSizeTextType="uniform" + app:layout_constraintBottom_toBottomOf="@id/tv_currency" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_weight="1" app:layout_constraintStart_toEndOf="@id/tv_currency" - app:layout_constraintBottom_toBottomOf="@id/tv_currency" tools:text="0.43 BTC" /> + tools:text="USD 3 588" /> - + + + + + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintHorizontal_bias="1" + app:layout_constraintStart_toEndOf="@id/tv_base_currency" + app:layout_constraintTop_toBottomOf="@id/v_divider" + tools:text="0.00434143 ETH" + /> + + + \ No newline at end of file