diff --git a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletState.kt b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletState.kt index 23157af53e..ec4c134bab 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletState.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/redux/WalletState.kt @@ -32,11 +32,13 @@ data class WalletState( currencyData.status != com.tangem.tap.features.wallet.ui.BalanceStatus.EmptyCard && currencyData.status != com.tangem.tap.features.wallet.ui.BalanceStatus.UnknownBlockchain - val showSegwitAddress: Boolean + val showMultipleAddress: Boolean get() { val listOfAddresses = walletAddresses?.list ?: return false - return (wallet?.blockchain == Blockchain.Bitcoin || wallet?.blockchain == Blockchain.BitcoinTestnet) - && listOfAddresses.size > 1 + return (wallet?.blockchain == Blockchain.Bitcoin || + wallet?.blockchain == Blockchain.BitcoinTestnet || + wallet?.blockchain == Blockchain.CardanoShelley) && + listOfAddresses.size > 1 } } diff --git a/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletFragment.kt b/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletFragment.kt index d08504c50b..7dd3bef7a9 100644 --- a/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletFragment.kt +++ b/app/src/main/java/com/tangem/tap/features/wallet/ui/WalletFragment.kt @@ -12,6 +12,8 @@ import androidx.transition.TransitionInflater import com.google.android.material.snackbar.Snackbar import com.squareup.picasso.Picasso import com.tangem.blockchain.blockchains.bitcoin.BitcoinAddressType +import com.tangem.blockchain.blockchains.cardano.CardanoAddressType +import com.tangem.blockchain.common.Blockchain import com.tangem.blockchain.common.address.AddressType import com.tangem.tap.common.extensions.* import com.tangem.tap.common.redux.navigation.AppScreen @@ -229,27 +231,27 @@ class WalletFragment : Fragment(R.layout.fragment_wallet), StoreSubscriber + chip_group_address_type.setOnCheckedChangeListener { group, checkedId -> if (checkedId == -1) return@setOnCheckedChangeListener - SegwitUiHelper.idToType(checkedId)?.let { + MultipleAddressUiHelper.idToType(checkedId, state.wallet?.blockchain)?.let { store.dispatch(WalletAction.ChangeSelectedAddress(it)) } } } else { tv_address.setPadding(tv_address.paddingStart, tvAddressPaddingTop, tv_address.paddingEnd, tv_address.paddingBottom) - chip_group_segwit.hide() + chip_group_address_type.hide() } tv_address.text = state.walletAddresses.selectedAddress.address tv_explore?.setOnClickListener { @@ -332,20 +334,34 @@ class WalletFragment : Fragment(R.layout.fragment_wallet), StoreSubscriber R.id.chip_legacy is BitcoinAddressType.Segwit -> R.id.chip_default + is CardanoAddressType.Byron -> R.id.chip_legacy + is CardanoAddressType.Shelley -> R.id.chip_default else -> View.NO_ID } } - fun idToType(id: Int): AddressType? { + fun idToType(id: Int, blockchain: Blockchain?): AddressType? { return when (id) { - R.id.chip_default -> BitcoinAddressType.Segwit - R.id.chip_legacy -> BitcoinAddressType.Legacy + R.id.chip_default -> { + when (blockchain) { + Blockchain.Bitcoin -> BitcoinAddressType.Segwit + Blockchain.CardanoShelley -> CardanoAddressType.Shelley + else -> null + } + } + R.id.chip_legacy -> { + when (blockchain) { + Blockchain.Bitcoin -> BitcoinAddressType.Legacy + Blockchain.CardanoShelley -> CardanoAddressType.Byron + else -> null + } + } else -> null } } diff --git a/app/src/main/res/layout/layout_address.xml b/app/src/main/res/layout/layout_address.xml index f707e8936e..f595eeccd7 100644 --- a/app/src/main/res/layout/layout_address.xml +++ b/app/src/main/res/layout/layout_address.xml @@ -24,7 +24,7 @@ android:layout_height="wrap_content"> + app:layout_constraintTop_toBottomOf="@id/chip_group_address_type"> + app:layout_constraintTop_toBottomOf="@id/chip_group_address_type">