Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,12 @@ enum class TransactionViewType {
SWAP_TRANSFER_QUEUED,
TWAP_ORDER,
TWAP_ORDER_QUEUED,
STAKE_DEPOSIT,
STAKE_DEPOSIT_QUEUED,
STAKE_VALIDATOR_EXIT,
STAKE_VALIDATOR_EXIT_QUEUED,
STAKE_WITHDRAW,
STAKE_WITHDRAW_QUEUED,
CONFLICT
}

Expand Down Expand Up @@ -74,6 +80,12 @@ class TransactionViewHolderFactory : BaseFactory<BaseTransactionViewHolder<Trans
TransactionViewType.SWAP_TRANSFER_QUEUED.ordinal -> SwapTransferQueuedViewHolder(viewBinding as ItemTxQueuedSwapOrderBinding)
TransactionViewType.TWAP_ORDER.ordinal -> TwapOrderViewHolder(viewBinding as ItemTxSwapOrderBinding)
TransactionViewType.TWAP_ORDER_QUEUED.ordinal -> TwapOrderQueuedViewHolder(viewBinding as ItemTxQueuedSwapOrderBinding)
TransactionViewType.STAKE_DEPOSIT.ordinal -> StakeDepositViewHolder(viewBinding as ItemTxStakeDepositBinding)
TransactionViewType.STAKE_DEPOSIT_QUEUED.ordinal -> StakeDepositQueuedViewHolder(viewBinding as ItemTxQueuedStakeDepositBinding)
TransactionViewType.STAKE_VALIDATOR_EXIT.ordinal -> StakeValidatorExitViewHolder(viewBinding as ItemTxStakeValidatorExitBinding)
TransactionViewType.STAKE_VALIDATOR_EXIT_QUEUED.ordinal -> StakeValidatorExitQueuedViewHolder(viewBinding as ItemTxQueuedStakeValidatorExitBinding)
TransactionViewType.STAKE_WITHDRAW.ordinal -> StakeWithdrawViewHolder(viewBinding as ItemTxStakeWithdrawBinding)
TransactionViewType.STAKE_WITHDRAW_QUEUED.ordinal -> StakeWithdrawQueuedViewHolder(viewBinding as ItemTxQueuedStakeWithdrawBinding)
else -> throw UnsupportedViewType(javaClass.name)
} as BaseTransactionViewHolder<TransactionView>

Expand All @@ -98,7 +110,12 @@ class TransactionViewHolderFactory : BaseFactory<BaseTransactionViewHolder<Trans
TransactionViewType.SWAP_TRANSFER_QUEUED.ordinal -> ItemTxQueuedSwapOrderBinding.inflate(layoutInflater, parent, false)
TransactionViewType.TWAP_ORDER.ordinal -> ItemTxSwapOrderBinding.inflate(layoutInflater, parent, false)
TransactionViewType.TWAP_ORDER_QUEUED.ordinal -> ItemTxQueuedSwapOrderBinding.inflate(layoutInflater, parent, false)

TransactionViewType.STAKE_DEPOSIT.ordinal -> ItemTxStakeDepositBinding.inflate(layoutInflater, parent, false)
TransactionViewType.STAKE_DEPOSIT_QUEUED.ordinal -> ItemTxQueuedStakeDepositBinding.inflate(layoutInflater, parent, false)
TransactionViewType.STAKE_VALIDATOR_EXIT.ordinal -> ItemTxStakeValidatorExitBinding.inflate(layoutInflater, parent, false)
TransactionViewType.STAKE_VALIDATOR_EXIT_QUEUED.ordinal -> ItemTxQueuedStakeValidatorExitBinding.inflate(layoutInflater, parent, false)
TransactionViewType.STAKE_WITHDRAW.ordinal -> ItemTxStakeWithdrawBinding.inflate(layoutInflater, parent, false)
TransactionViewType.STAKE_WITHDRAW_QUEUED.ordinal -> ItemTxQueuedStakeWithdrawBinding.inflate(layoutInflater, parent, false)
else -> throw UnsupportedViewType(javaClass.name)
}

Expand All @@ -124,6 +141,12 @@ class TransactionViewHolderFactory : BaseFactory<BaseTransactionViewHolder<Trans
is TransactionView.SwapTransferTransactionQueued -> TransactionViewType.SWAP_TRANSFER_QUEUED
is TransactionView.TwapOrderTransaction -> TransactionViewType.TWAP_ORDER
is TransactionView.TwapOrderTransactionQueued -> TransactionViewType.TWAP_ORDER_QUEUED
is TransactionView.StakeDepositTransaction -> TransactionViewType.STAKE_DEPOSIT
is TransactionView.StakeDepositTransactionQueued -> TransactionViewType.STAKE_DEPOSIT_QUEUED
is TransactionView.StakeValidatorExitTransaction -> TransactionViewType.STAKE_VALIDATOR_EXIT
is TransactionView.StakeValidatorExitTransactionQueued -> TransactionViewType.STAKE_VALIDATOR_EXIT_QUEUED
is TransactionView.StakeWithdrawTransaction -> TransactionViewType.STAKE_WITHDRAW
is TransactionView.StakeWithdrawTransactionQueued -> TransactionViewType.STAKE_WITHDRAW_QUEUED
}.ordinal
}

Expand Down Expand Up @@ -511,6 +534,163 @@ class TwapOrderViewHolder(private val viewBinding: ItemTxSwapOrderBinding) :
}
}

class StakeValidatorExitViewHolder(private val viewBinding: ItemTxStakeValidatorExitBinding) :
BaseTransactionViewHolder<TransactionView.StakeValidatorExitTransaction>(viewBinding) {

override fun bind(viewTransfer: TransactionView.StakeValidatorExitTransaction, payloads: List<Any>) {
val resources = viewBinding.root.context.resources
val theme = viewBinding.root.context.theme

with(viewBinding) {
finalStatus.setText(viewTransfer.statusText)
finalStatus.setTextColor(ResourcesCompat.getColor(resources, viewTransfer.statusColorRes, theme))
dateTime.text = viewTransfer.dateTimeText

stakeValidatorExitLabel.text = viewTransfer.displayName
nonce.text = viewTransfer.nonce
// amount.text = viewTransfer.value

finalStatus.alpha = OPACITY_FULL
dateTime.alpha = viewTransfer.alpha
// amount.alpha = viewTransfer.alpha
nonce.alpha = viewTransfer.alpha

root.setOnClickListener {
navigateToTxDetails(it, viewTransfer.chain, viewTransfer.id)
}
}
}
}

class StakeDepositViewHolder(private val viewBinding: ItemTxStakeDepositBinding) :
BaseTransactionViewHolder<TransactionView.StakeDepositTransaction>(viewBinding) {

override fun bind(viewTransfer: TransactionView.StakeDepositTransaction, payloads: List<Any>) {
val resources = viewBinding.root.context.resources
val theme = viewBinding.root.context.theme

with(viewBinding) {
finalStatus.setText(viewTransfer.statusText)
finalStatus.setTextColor(ResourcesCompat.getColor(resources, viewTransfer.statusColorRes, theme))

stakeDepositLabel.text = viewTransfer.displayName
dateTime.text = viewTransfer.dateTimeText
nonce.text = viewTransfer.nonce

finalStatus.alpha = OPACITY_FULL
dateTime.alpha = viewTransfer.alpha
nonce.alpha = viewTransfer.alpha

root.setOnClickListener {
navigateToTxDetails(it, viewTransfer.chain, viewTransfer.id)
}
}
}
}

class StakeDepositQueuedViewHolder(private val viewBinding: ItemTxQueuedStakeDepositBinding) :
BaseTransactionViewHolder<TransactionView.StakeDepositTransactionQueued>(viewBinding) {

@OptIn(ExperimentalTime::class)
override fun bind(viewTransfer: TransactionView.StakeDepositTransactionQueued, payloads: List<Any>) {
val resources = viewBinding.root.context.resources
val theme = viewBinding.root.context.theme
with(viewBinding) {
stakeDepositLabel.text = viewTransfer.displayName
status.setText(viewTransfer.statusText)
status.setTextColor(ResourcesCompat.getColor(resources, viewTransfer.statusColorRes, theme))
dateTime.text = viewTransfer.dateTime.elapsedIntervalTo(Date.from(Instant.now())).format(resources)

confirmations.setTextColor(ResourcesCompat.getColor(resources, viewTransfer.confirmationsTextColor, theme))
confirmationsIcon.setImageDrawable(ResourcesCompat.getDrawable(resources, viewTransfer.confirmationsIcon, theme))
confirmations.text = resources.getString(R.string.tx_list_confirmations, viewTransfer.confirmations, viewTransfer.threshold)
nonce.text = viewTransfer.nonce

root.setOnClickListener {
navigateToTxDetails(it, viewTransfer.chain, viewTransfer.id)
}
}
}
}

class StakeValidatorExitQueuedViewHolder(private val viewBinding: ItemTxQueuedStakeValidatorExitBinding) :
BaseTransactionViewHolder<TransactionView.StakeValidatorExitTransactionQueued>(viewBinding) {

@OptIn(ExperimentalTime::class)
override fun bind(viewTransfer: TransactionView.StakeValidatorExitTransactionQueued, payloads: List<Any>) {
val resources = viewBinding.root.context.resources
val theme = viewBinding.root.context.theme

with(viewBinding) {
status.setText(viewTransfer.statusText)
status.setTextColor(ResourcesCompat.getColor(resources, viewTransfer.statusColorRes, theme))

dateTime.text = viewTransfer.dateTime.elapsedIntervalTo(Date.from(Instant.now())).format(resources)

stakeValidatorExitLabel.text = viewTransfer.displayName
confirmationsIcon.setImageDrawable(ResourcesCompat.getDrawable(resources, viewTransfer.confirmationsIcon, theme))
confirmations.setTextColor(ResourcesCompat.getColor(resources, viewTransfer.confirmationsTextColor, theme))
confirmations.text = resources.getString(R.string.tx_list_confirmations, viewTransfer.confirmations, viewTransfer.threshold)

nonce.text = viewTransfer.nonce

root.setOnClickListener {
navigateToTxDetails(it, viewTransfer.chain, viewTransfer.id)
}
}
}
}

class StakeWithdrawViewHolder(private val viewBinding: ItemTxStakeWithdrawBinding) :
BaseTransactionViewHolder<TransactionView.StakeWithdrawTransaction>(viewBinding) {

override fun bind(viewTransfer: TransactionView.StakeWithdrawTransaction, payloads: List<Any>) {
val resources = viewBinding.root.context.resources
val theme = viewBinding.root.context.theme

with(viewBinding) {
finalStatus.setText(viewTransfer.statusText)
finalStatus.setTextColor(ResourcesCompat.getColor(resources, viewTransfer.statusColorRes, theme))
dateTime.text = viewTransfer.dateTimeText

txListLabel.text = viewTransfer.displayName
nonce.text = viewTransfer.nonce

finalStatus.alpha = OPACITY_FULL
dateTime.alpha = viewTransfer.alpha
nonce.alpha = viewTransfer.alpha

root.setOnClickListener {
navigateToTxDetails(it, viewTransfer.chain, viewTransfer.id)
}
}
}
}

class StakeWithdrawQueuedViewHolder(private val viewBinding: ItemTxQueuedStakeWithdrawBinding) :
BaseTransactionViewHolder<TransactionView.StakeWithdrawTransactionQueued>(viewBinding) {

@OptIn(ExperimentalTime::class)
override fun bind(viewTransfer: TransactionView.StakeWithdrawTransactionQueued, payloads: List<Any>) {
val resources = viewBinding.root.context.resources
val theme = viewBinding.root.context.theme
with(viewBinding) {
txListLabel.text = viewTransfer.displayName
status.setText(viewTransfer.statusText)
status.setTextColor(ResourcesCompat.getColor(resources, viewTransfer.statusColorRes, theme))
dateTime.text = viewTransfer.dateTime.elapsedIntervalTo(Date.from(Instant.now())).format(resources)

confirmations.setTextColor(ResourcesCompat.getColor(resources, viewTransfer.confirmationsTextColor, theme))
confirmationsIcon.setImageDrawable(ResourcesCompat.getDrawable(resources, viewTransfer.confirmationsIcon, theme))
confirmations.text = resources.getString(R.string.tx_list_confirmations, viewTransfer.confirmations, viewTransfer.threshold)
nonce.text = viewTransfer.nonce

root.setOnClickListener {
navigateToTxDetails(it, viewTransfer.chain, viewTransfer.id)
}
}
}
}

private fun Resources.getAction(methodName: String?, actionCount: Int?): String? =
if (actionCount != null) {
Expand Down
Loading