Updated on 2026-08-14
This commit is contained in:
parent
97351cf3b7
commit
6f379ec96f
2 changed files with 25 additions and 14 deletions
|
|
@ -205,16 +205,7 @@ internal fun List<WalletDataModel>.updateSelectedAddress(
|
|||
if (index == -1) return this
|
||||
|
||||
val oldWalletData = this[index]
|
||||
val addresses = oldWalletData.walletAddresses
|
||||
?: return this
|
||||
val selectedAddress = addresses.list
|
||||
.firstOrNull { it.type == addressType }
|
||||
?: addresses.selectedAddress
|
||||
val updatedWalletData = oldWalletData.copy(
|
||||
walletAddresses = addresses.copy(
|
||||
selectedAddress = selectedAddress,
|
||||
),
|
||||
)
|
||||
val updatedWalletData = oldWalletData.updateSelectedAddress(addressType)
|
||||
if (oldWalletData == updatedWalletData) return this
|
||||
|
||||
return this.toMutableList().apply {
|
||||
|
|
@ -222,6 +213,21 @@ internal fun List<WalletDataModel>.updateSelectedAddress(
|
|||
}
|
||||
}
|
||||
|
||||
internal fun WalletDataModel.updateSelectedAddress(
|
||||
addressType: AddressType,
|
||||
): WalletDataModel {
|
||||
val addresses = walletAddresses ?: return this
|
||||
val selectedAddress = addresses.list
|
||||
.firstOrNull { it.type == addressType }
|
||||
?: addresses.selectedAddress
|
||||
|
||||
return this.copy(
|
||||
walletAddresses = addresses.copy(
|
||||
selectedAddress = selectedAddress,
|
||||
),
|
||||
)
|
||||
}
|
||||
|
||||
internal fun WalletDataModel.isSameWalletData(other: WalletDataModel): Boolean {
|
||||
return this.currency == other.currency
|
||||
}
|
||||
|
|
@ -183,8 +183,13 @@ class SingleWalletView : WalletView() {
|
|||
}
|
||||
}
|
||||
|
||||
// FIXME: Move to model watcher
|
||||
private var watchedPrimaryWallet: WalletDataModel? = null
|
||||
private fun setupAddressCard(state: WalletState, binding: FragmentWalletBinding) = with(binding.lAddress) {
|
||||
val primaryWallet = state.primaryWalletData
|
||||
if (primaryWallet == watchedPrimaryWallet) return@with
|
||||
watchedPrimaryWallet = primaryWallet
|
||||
|
||||
if (primaryWallet?.walletAddresses != null && primaryWallet.currency is Currency.Blockchain) {
|
||||
binding.lAddress.root.show()
|
||||
if (primaryWallet.shouldShowMultipleAddress()) {
|
||||
|
|
@ -211,16 +216,16 @@ class SingleWalletView : WalletView() {
|
|||
),
|
||||
)
|
||||
}
|
||||
setupCardInfo(state)
|
||||
setupCardInfo(primaryWallet)
|
||||
} else {
|
||||
binding.lAddress.root.hide()
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupCardInfo(state: WalletState) {
|
||||
private fun setupCardInfo(walletData: WalletDataModel) {
|
||||
val textView = binding?.lAddress?.tvInfo
|
||||
val blockchain = state.primaryWalletData?.currency?.blockchain
|
||||
if (textView != null && blockchain != null) {
|
||||
val blockchain = walletData.currency.blockchain
|
||||
if (textView != null) {
|
||||
textView.text = textView.getString(
|
||||
id = R.string.address_qr_code_message_format,
|
||||
blockchain.fullName,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue