diff --git a/app/src/main/java/com/tangem/tap/features/wallet/models/PendingTransaction.kt b/app/src/main/java/com/tangem/tap/features/wallet/models/PendingTransaction.kt index 715dde0252..21cdc9d649 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/models/PendingTransaction.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/models/PendingTransaction.kt @@ -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.toPendingTransactions(walletAddress: String): List{ +fun List.toPendingTransactions(walletAddress: String): List { return this.mapNotNull { it.toPendingTransaction(walletAddress) } +} + +fun List.removeUnknownTransactions(): List { + return this.filter { it.type != PendingTransactionType.Unknown } } \ No newline at end of file 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..326d692604 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 @@ -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) ) } \ No newline at end of file diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/PendingTransactionsAdapter.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/PendingTransactionsAdapter.kt index 159a4b8f48..93e0202458 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/PendingTransactionsAdapter.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/PendingTransactionsAdapter.kt @@ -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)