Updated on 2026-08-14
This commit is contained in:
parent
096c8e2f23
commit
bdbe22797b
3 changed files with 18 additions and 5 deletions
|
|
@ -11,7 +11,7 @@ data class PendingTransaction(
|
||||||
val type: PendingTransactionType
|
val type: PendingTransactionType
|
||||||
)
|
)
|
||||||
|
|
||||||
enum class PendingTransactionType { Incoming, Outgoing }
|
enum class PendingTransactionType { Incoming, Outgoing, Unknown }
|
||||||
|
|
||||||
fun TransactionData.toPendingTransaction(walletAddress: String): PendingTransaction? {
|
fun TransactionData.toPendingTransaction(walletAddress: String): PendingTransaction? {
|
||||||
if (this.status == TransactionStatus.Confirmed) return null
|
if (this.status == TransactionStatus.Confirmed) return null
|
||||||
|
|
@ -24,7 +24,7 @@ fun TransactionData.toPendingTransaction(walletAddress: String): PendingTransact
|
||||||
PendingTransactionType.Incoming
|
PendingTransactionType.Incoming
|
||||||
}
|
}
|
||||||
else -> {
|
else -> {
|
||||||
return null
|
PendingTransactionType.Unknown
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
val address = if (this.sourceAddress == walletAddress) {
|
val address = if (this.sourceAddress == walletAddress) {
|
||||||
|
|
@ -41,6 +41,10 @@ fun TransactionData.toPendingTransaction(walletAddress: String): PendingTransact
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun List<TransactionData>.toPendingTransactions(walletAddress: String): List<PendingTransaction>{
|
fun List<TransactionData>.toPendingTransactions(walletAddress: String): List<PendingTransaction> {
|
||||||
return this.mapNotNull { it.toPendingTransaction(walletAddress) }
|
return this.mapNotNull { it.toPendingTransaction(walletAddress) }
|
||||||
|
}
|
||||||
|
|
||||||
|
fun List<PendingTransaction>.removeUnknownTransactions(): List<PendingTransaction> {
|
||||||
|
return this.filter { it.type != PendingTransactionType.Unknown }
|
||||||
}
|
}
|
||||||
|
|
@ -11,6 +11,7 @@ import com.tangem.tap.common.extensions.toFormattedString
|
||||||
import com.tangem.tap.common.extensions.toQrCode
|
import com.tangem.tap.common.extensions.toQrCode
|
||||||
import com.tangem.tap.common.redux.AppState
|
import com.tangem.tap.common.redux.AppState
|
||||||
import com.tangem.tap.domain.TapError
|
import com.tangem.tap.domain.TapError
|
||||||
|
import com.tangem.tap.features.wallet.models.removeUnknownTransactions
|
||||||
import com.tangem.tap.features.wallet.models.toPendingTransactions
|
import com.tangem.tap.features.wallet.models.toPendingTransactions
|
||||||
import com.tangem.tap.features.wallet.ui.BalanceStatus
|
import com.tangem.tap.features.wallet.ui.BalanceStatus
|
||||||
import com.tangem.tap.features.wallet.ui.BalanceWidgetData
|
import com.tangem.tap.features.wallet.ui.BalanceWidgetData
|
||||||
|
|
@ -244,7 +245,7 @@ private fun onWalletLoaded(wallet: Wallet, walletState: WalletState): WalletStat
|
||||||
token = tokenData,
|
token = tokenData,
|
||||||
fiatAmount = fiatAmount
|
fiatAmount = fiatAmount
|
||||||
),
|
),
|
||||||
pendingTransactions = pendingTransactions,
|
pendingTransactions = pendingTransactions.removeUnknownTransactions(),
|
||||||
mainButton = WalletMainButton.SendButton(sendButtonEnabled)
|
mainButton = WalletMainButton.SendButton(sendButtonEnabled)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
@ -7,6 +7,7 @@ import androidx.recyclerview.widget.DiffUtil
|
||||||
import androidx.recyclerview.widget.ListAdapter
|
import androidx.recyclerview.widget.ListAdapter
|
||||||
import androidx.recyclerview.widget.RecyclerView
|
import androidx.recyclerview.widget.RecyclerView
|
||||||
import com.tangem.tap.common.extensions.getDrawableCompat
|
import com.tangem.tap.common.extensions.getDrawableCompat
|
||||||
|
import com.tangem.tap.common.extensions.hide
|
||||||
import com.tangem.tap.features.wallet.models.PendingTransaction
|
import com.tangem.tap.features.wallet.models.PendingTransaction
|
||||||
import com.tangem.tap.features.wallet.models.PendingTransactionType
|
import com.tangem.tap.features.wallet.models.PendingTransactionType
|
||||||
import com.tangem.wallet.R
|
import com.tangem.wallet.R
|
||||||
|
|
@ -35,22 +36,29 @@ class PendingTransactionsAdapter
|
||||||
) = oldItem == newItem
|
) = oldItem == newItem
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class TransactionsViewHolder(val view: View) :
|
class TransactionsViewHolder(val view: View) :
|
||||||
RecyclerView.ViewHolder(view) {
|
RecyclerView.ViewHolder(view) {
|
||||||
|
|
||||||
fun bind(transaction: PendingTransaction) {
|
fun bind(transaction: PendingTransaction) {
|
||||||
|
|
||||||
|
if (transaction.type == PendingTransactionType.Unknown) {
|
||||||
|
view.hide()
|
||||||
|
}
|
||||||
|
|
||||||
val transactionDescriptionRes = when (transaction.type) {
|
val transactionDescriptionRes = when (transaction.type) {
|
||||||
PendingTransactionType.Incoming -> R.string.wallet_pending_tx_receiving
|
PendingTransactionType.Incoming -> R.string.wallet_pending_tx_receiving
|
||||||
PendingTransactionType.Outgoing -> R.string.wallet_pending_tx_sending
|
PendingTransactionType.Outgoing -> R.string.wallet_pending_tx_sending
|
||||||
|
PendingTransactionType.Unknown -> return
|
||||||
}
|
}
|
||||||
val transactionAddressRes = when (transaction.type) {
|
val transactionAddressRes = when (transaction.type) {
|
||||||
PendingTransactionType.Incoming -> R.string.wallet_pending_tx_receiving_address_format
|
PendingTransactionType.Incoming -> R.string.wallet_pending_tx_receiving_address_format
|
||||||
PendingTransactionType.Outgoing -> R.string.wallet_pending_tx_sending_address_format
|
PendingTransactionType.Outgoing -> R.string.wallet_pending_tx_sending_address_format
|
||||||
|
PendingTransactionType.Unknown -> return
|
||||||
}
|
}
|
||||||
val image = when (transaction.type) {
|
val image = when (transaction.type) {
|
||||||
PendingTransactionType.Incoming -> R.drawable.ic_arrow_left
|
PendingTransactionType.Incoming -> R.drawable.ic_arrow_left
|
||||||
PendingTransactionType.Outgoing -> R.drawable.ic_arrow_right_20
|
PendingTransactionType.Outgoing -> R.drawable.ic_arrow_right_20
|
||||||
|
PendingTransactionType.Unknown -> return
|
||||||
}
|
}
|
||||||
view.tv_pending_transaction.text = view.context.getString(transactionDescriptionRes)
|
view.tv_pending_transaction.text = view.context.getString(transactionDescriptionRes)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue