diff --git a/app/build.gradle b/app/build.gradle index 58c711eb31..98ed954d8b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -76,7 +76,7 @@ dependencies { coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5' - implementation 'com.tangem:blockchain:1.158.0' + implementation 'com.tangem:blockchain:1.159.0' implementation 'com.tangem:core:1.108.0' implementation 'com.tangem:sdk:1.108.0' diff --git a/app/src/main/java/com/tangem/tap/common/extensions/Token.kt b/app/src/main/java/com/tangem/tap/common/extensions/Token.kt index f9499f8e70..fdfb83ef77 100644 --- a/app/src/main/java/com/tangem/tap/common/extensions/Token.kt +++ b/app/src/main/java/com/tangem/tap/common/extensions/Token.kt @@ -3,9 +3,14 @@ package com.tangem.tap.common.extensions import androidx.annotation.ColorInt import androidx.core.graphics.toColorInt import com.tangem.blockchain.common.Token +import com.tangem.wallet.R @ColorInt fun Token.getColor(): Int { - return ("#" + this.contractAddress.subSequence(2..7).toString()) - .toColorInt() + return try { + ("#" + this.contractAddress.subSequence(2..7).toString()) + .toColorInt() + } catch (exception: Exception) { + R.color.lightGray4 + } } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt index b24e7916db..997a470724 100644 --- a/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/send/redux/middlewares/SendMiddleware.kt @@ -120,6 +120,9 @@ private fun sendTransaction( dispatch(GlobalAction.UpdateWalletSignedHashes(result.data.walletSignedHashes)) dispatch(NavigationAction.PopBackTo()) scope.launch(Dispatchers.IO) { + withContext(Dispatchers.Main) { + dispatch(WalletAction.UpdateWallet(walletManager.wallet.blockchain.currency)) + } delay(10000) withContext(Dispatchers.Main) { dispatch(WalletAction.UpdateWallet(walletManager.wallet.blockchain.currency)) diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/MultiWalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/MultiWalletMiddleware.kt index 4f28ce1f3f..884616d714 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/MultiWalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/MultiWalletMiddleware.kt @@ -41,6 +41,7 @@ class MultiWalletMiddleware { currenciesRepository.saveAddedBlockchain(it, action.blockchain) } store.dispatch(WalletAction.LoadFiatRate(currency = action.blockchain.currency)) + store.dispatch(WalletAction.LoadWallet(currency = action.blockchain.currency)) } is WalletAction.MultiWallet.RemoveWallet -> { val cardId = globalState?.scanNoteResponse?.card?.cardId diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt index 6d27122a01..05993a08ef 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/middlewares/WalletMiddleware.kt @@ -207,7 +207,7 @@ class WalletMiddleware { val amountToSend = amounts?.find { it.currencySymbol == currency } ?: return WalletAction.Send.ChooseCurrency(amounts) if (amountToSend.type is AmountType.Token) { - prepareSendActionForToken(amount, state, selectedWalletData, wallet, walletManager) + prepareSendActionForToken(amountToSend, state, selectedWalletData, wallet, walletManager) } else { PrepareSendScreen(amountToSend, selectedWalletData.fiatRate, walletManager) } @@ -223,7 +223,7 @@ class WalletMiddleware { } private fun prepareSendActionForToken( - amount: Amount?, state: WalletState?, selectedWalletData: WalletData?, wallet: Wallet?, + amount: Amount, state: WalletState?, selectedWalletData: WalletData?, wallet: Wallet?, walletManager: WalletManager? ): PrepareSendScreen { val coinRate = state?.getWalletData(wallet?.blockchain?.currency)?.fiatRate diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/WalletReducer.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/WalletReducer.kt index da5b7d515e..59e50c8820 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/WalletReducer.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/reducers/WalletReducer.kt @@ -135,15 +135,14 @@ private fun internalReduce(action: Action, state: AppState): WalletState { ) ) val wallets = newState.replaceWalletInWallets(walletData) - val state = if (wallets.any { it.currencyData.status == BalanceStatus.Loading }) { + val progressState = if (wallets.any { it.currencyData.status == BalanceStatus.Loading }) { ProgressState.Loading } else { ProgressState.Done } newState = newState.copy( - state = state, + state = progressState, wallets = wallets - ) } is WalletAction.LoadWallet.Failure -> { diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletDetailsFragment.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletDetailsFragment.kt index 6517bd7c11..8913acc643 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletDetailsFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletDetailsFragment.kt @@ -179,7 +179,7 @@ class WalletDetailsFragment : Fragment(R.layout.fragment_wallet_details), StoreS state.walletAddresses.selectedAddress.exploreUrl, requireContext())) } - iv_qr_code.setImageBitmap(state.walletAddresses.selectedAddress.address.toQrCode()) + iv_qr_code.setImageBitmap(state.walletAddresses.selectedAddress.shareUrl.toQrCode()) } } diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/WalletAdapter.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/WalletAdapter.kt index f8c337d1f1..73083d0e58 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/WalletAdapter.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/adapters/WalletAdapter.kt @@ -8,7 +8,9 @@ import androidx.recyclerview.widget.ListAdapter import androidx.recyclerview.widget.RecyclerView import com.tangem.blockchain.common.Blockchain import com.tangem.blockchain.common.Token -import com.tangem.tap.common.extensions.* +import com.tangem.tap.common.extensions.getColor +import com.tangem.tap.common.extensions.getIconRes +import com.tangem.tap.common.extensions.show import com.tangem.tap.features.wallet.redux.WalletAction import com.tangem.tap.features.wallet.redux.WalletData import com.tangem.tap.features.wallet.ui.BalanceStatus @@ -80,11 +82,8 @@ class WalletAdapter fun bind(wallet: WalletData) { view.tv_currency.text = wallet.currencyData.currency - view.tv_amount.text = wallet.currencyData.amount - if (view.tv_amount.isEllipsized()) { - val allowedSize = view.tv_amount.text.length - 4 - view.tv_amount.text = wallet.currencyData.amount?.ellipsizeBeforeSpace(allowedSize) - } + view.tv_amount.text = wallet.currencyData.amount?.takeWhile { !it.isWhitespace() } + view.tv_currency_symbol.text = wallet.currencyData.amount?.takeLastWhile { !it.isWhitespace() } view.tv_amount_fiat.text = wallet.currencyData.fiatAmount view.tv_exchange_rate.text = wallet.fiatRateString view.card_wallet.setOnClickListener { diff --git a/app/src/main/res/layout/fragment_details.xml b/app/src/main/res/layout/fragment_details.xml index b45e3e92ce..00c0626cba 100644 --- a/app/src/main/res/layout/fragment_details.xml +++ b/app/src/main/res/layout/fragment_details.xml @@ -258,48 +258,6 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/tv_security_title" /> - - - - - - - - - - diff --git a/app/src/main/res/layout/item_currency_wallet.xml b/app/src/main/res/layout/item_currency_wallet.xml index 576619305c..d4a2a6dfd2 100644 --- a/app/src/main/res/layout/item_currency_wallet.xml +++ b/app/src/main/res/layout/item_currency_wallet.xml @@ -108,17 +108,34 @@ android:ellipsize="end" android:gravity="end" android:maxLines="1" - android:paddingStart="2dp" - android:paddingEnd="16dp" + android:layout_marginStart="2dp" + android:layout_marginTop="16dp" + android:textColor="@color/darkGray6" + android:textSize="17sp" + android:textStyle="bold" + app:layout_constraintEnd_toStartOf="@id/tv_currency_symbol" + app:layout_constraintHorizontal_weight="1" + app:layout_constraintStart_toEndOf="@id/tv_currency" + app:layout_constraintTop_toTopOf="parent" + tools:text="3 588" /> + + + tools:text="BTC" />