Updated on 2026-08-14
This commit is contained in:
parent
536dcb4f3e
commit
ed5d5b1b33
23 changed files with 269 additions and 187 deletions
|
|
@ -8,6 +8,7 @@ import com.tangem.core.ui.R
|
|||
import com.tangem.core.ui.components.SimpleSettingsRow
|
||||
import com.tangem.core.ui.components.bottomsheets.TangemBottomSheet
|
||||
import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig
|
||||
import com.tangem.core.ui.extensions.resolveReference
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
|
||||
@Composable
|
||||
|
|
@ -24,7 +25,7 @@ private fun ChooseAddressBottomSheetContent(content: ChooseAddressBottomSheetCon
|
|||
) {
|
||||
content.addressModels.forEach { addressModel ->
|
||||
SimpleSettingsRow(
|
||||
title = addressModel.type.name,
|
||||
title = addressModel.displayName.resolveReference(),
|
||||
icon = R.drawable.ic_arrow_top_right_24,
|
||||
onItemsClick = { content.onClick(addressModel) },
|
||||
)
|
||||
|
|
|
|||
|
|
@ -0,0 +1,43 @@
|
|||
package com.tangem.core.ui.components.bottomsheets.tokenreceive
|
||||
|
||||
import com.tangem.core.ui.extensions.TextReference
|
||||
import com.tangem.core.ui.extensions.stringReference
|
||||
import com.tangem.domain.tokens.model.CryptoCurrency
|
||||
import com.tangem.domain.tokens.model.Network
|
||||
import com.tangem.domain.tokens.model.NetworkAddress
|
||||
|
||||
private const val DSC_ADDRESS_NAME = "DSC"
|
||||
private const val DEL_ADDRESS_NAME = "Main"
|
||||
|
||||
private const val LEGACY_ADDRESS_NAME = "Legacy"
|
||||
private const val DEFAULT_ADDRESS_NAME = "Default"
|
||||
|
||||
fun Set<NetworkAddress.Address>.mapToAddressModels(currency: CryptoCurrency): List<AddressModel> = this
|
||||
.sortedBy { it.type.ordinal }
|
||||
.map { address ->
|
||||
AddressModel(
|
||||
displayName = currency.network.getAddressDisplayName(address.type),
|
||||
value = address.value,
|
||||
type = when (address.type) {
|
||||
NetworkAddress.Address.Type.Primary -> AddressModel.Type.Default
|
||||
NetworkAddress.Address.Type.Secondary -> AddressModel.Type.Legacy
|
||||
},
|
||||
)
|
||||
}
|
||||
|
||||
private fun Network.getAddressDisplayName(addressType: NetworkAddress.Address.Type): TextReference {
|
||||
return when (id.value) {
|
||||
"decimal", "decimal/test" -> {
|
||||
when (addressType) {
|
||||
NetworkAddress.Address.Type.Primary -> stringReference(value = DEL_ADDRESS_NAME)
|
||||
NetworkAddress.Address.Type.Secondary -> stringReference(value = DSC_ADDRESS_NAME)
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
when (addressType) {
|
||||
NetworkAddress.Address.Type.Primary -> stringReference(value = DEFAULT_ADDRESS_NAME)
|
||||
NetworkAddress.Address.Type.Secondary -> stringReference(value = LEGACY_ADDRESS_NAME)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,8 +1,11 @@
|
|||
package com.tangem.core.ui.components.bottomsheets.tokenreceive
|
||||
|
||||
import com.tangem.core.ui.extensions.TextReference
|
||||
|
||||
data class AddressModel(
|
||||
val displayName: TextReference,
|
||||
val value: String,
|
||||
val type: Type = Type.Default,
|
||||
val type: Type,
|
||||
) {
|
||||
enum class Type {
|
||||
Legacy, Default
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ import androidx.compose.foundation.lazy.rememberLazyListState
|
|||
import androidx.compose.foundation.pager.HorizontalPager
|
||||
import androidx.compose.foundation.pager.rememberPagerState
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.material3.*
|
||||
import androidx.compose.material3.Text
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
|
|
@ -26,6 +26,7 @@ import com.tangem.core.ui.components.SecondaryButtonIconStart
|
|||
import com.tangem.core.ui.components.bottomsheets.TangemBottomSheet
|
||||
import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfig
|
||||
import com.tangem.core.ui.components.rememberQrPainters
|
||||
import com.tangem.core.ui.extensions.resolveReference
|
||||
import com.tangem.core.ui.extensions.shareText
|
||||
import com.tangem.core.ui.res.TangemTheme
|
||||
|
||||
|
|
@ -181,13 +182,6 @@ private fun getName(content: TokenReceiveBottomSheetConfig, index: Int): String
|
|||
return if (content.addresses.size < 2) {
|
||||
content.name
|
||||
} else {
|
||||
"${
|
||||
stringResource(
|
||||
id = when (content.addresses[index].type) {
|
||||
AddressModel.Type.Default -> R.string.address_type_default
|
||||
AddressModel.Type.Legacy -> R.string.address_type_legacy
|
||||
},
|
||||
)
|
||||
} ${content.name}"
|
||||
"${content.addresses[index].displayName.resolveReference()} ${content.name}"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,12 +1,13 @@
|
|||
package com.tangem.core.ui.components.bottomsheets.tokenreceive
|
||||
|
||||
import com.tangem.core.ui.components.bottomsheets.TangemBottomSheetConfigContent
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
|
||||
class TokenReceiveBottomSheetConfig(
|
||||
val name: String,
|
||||
val symbol: String,
|
||||
val network: String,
|
||||
val addresses: List<AddressModel>,
|
||||
val addresses: ImmutableList<AddressModel>,
|
||||
val onCopyClick: () -> Unit,
|
||||
val onShareClick: () -> Unit,
|
||||
) : TangemBottomSheetConfigContent
|
||||
|
|
@ -28,7 +28,6 @@ fun getActiveIconRes(blockchainId: String): Int {
|
|||
"GNO" -> R.drawable.img_gnosis_22
|
||||
"ETH-Pow", "ETH-Pow/test" -> R.drawable.img_eth_pow_22
|
||||
"ETH-Fair" -> R.drawable.img_eth_fair_22
|
||||
"NEAR", "NEAR/test" -> R.drawable.img_near_22
|
||||
"Polkadot", "Polkadot/test" -> R.drawable.img_polkadot_22
|
||||
"Kusama" -> R.drawable.img_kusama_22
|
||||
"OPTIMISM", "OPTIMISM/test" -> R.drawable.img_optimism_22
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue