Updated on 2026-08-14

This commit is contained in:
Tangem 2020-10-27 10:10:14 +03:00
parent 096c8e2f23
commit bdbe22797b
3 changed files with 18 additions and 5 deletions

View file

@ -11,7 +11,7 @@ data class PendingTransaction(
val type: PendingTransactionType
)
enum class PendingTransactionType { Incoming, Outgoing }
enum class PendingTransactionType { Incoming, Outgoing, Unknown }
fun TransactionData.toPendingTransaction(walletAddress: String): PendingTransaction? {
if (this.status == TransactionStatus.Confirmed) return null
@ -24,7 +24,7 @@ fun TransactionData.toPendingTransaction(walletAddress: String): PendingTransact
PendingTransactionType.Incoming
}
else -> {
return null
PendingTransactionType.Unknown
}
}
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) }
}
fun List<PendingTransaction>.removeUnknownTransactions(): List<PendingTransaction> {
return this.filter { it.type != PendingTransactionType.Unknown }
}

View file

@ -11,6 +11,7 @@ import com.tangem.tap.common.extensions.toFormattedString
import com.tangem.tap.common.extensions.toQrCode
import com.tangem.tap.common.redux.AppState
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.ui.BalanceStatus
import com.tangem.tap.features.wallet.ui.BalanceWidgetData
@ -244,7 +245,7 @@ private fun onWalletLoaded(wallet: Wallet, walletState: WalletState): WalletStat
token = tokenData,
fiatAmount = fiatAmount
),
pendingTransactions = pendingTransactions,
pendingTransactions = pendingTransactions.removeUnknownTransactions(),
mainButton = WalletMainButton.SendButton(sendButtonEnabled)
)
}

View file

@ -7,6 +7,7 @@ import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.ListAdapter
import androidx.recyclerview.widget.RecyclerView
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.PendingTransactionType
import com.tangem.wallet.R
@ -35,22 +36,29 @@ class PendingTransactionsAdapter
) = oldItem == newItem
}
class TransactionsViewHolder(val view: View) :
RecyclerView.ViewHolder(view) {
fun bind(transaction: PendingTransaction) {
if (transaction.type == PendingTransactionType.Unknown) {
view.hide()
}
val transactionDescriptionRes = when (transaction.type) {
PendingTransactionType.Incoming -> R.string.wallet_pending_tx_receiving
PendingTransactionType.Outgoing -> R.string.wallet_pending_tx_sending
PendingTransactionType.Unknown -> return
}
val transactionAddressRes = when (transaction.type) {
PendingTransactionType.Incoming -> R.string.wallet_pending_tx_receiving_address_format
PendingTransactionType.Outgoing -> R.string.wallet_pending_tx_sending_address_format
PendingTransactionType.Unknown -> return
}
val image = when (transaction.type) {
PendingTransactionType.Incoming -> R.drawable.ic_arrow_left
PendingTransactionType.Outgoing -> R.drawable.ic_arrow_right_20
PendingTransactionType.Unknown -> return
}
view.tv_pending_transaction.text = view.context.getString(transactionDescriptionRes)