diff --git a/ui-design-lib/src/main/java/co/electriccoin/zcash/ui/design/component/ZashiBigIconButton.kt b/ui-design-lib/src/main/java/co/electriccoin/zcash/ui/design/component/ZashiBigIconButton.kt index 1d16d4828..56cbc40a0 100644 --- a/ui-design-lib/src/main/java/co/electriccoin/zcash/ui/design/component/ZashiBigIconButton.kt +++ b/ui-design-lib/src/main/java/co/electriccoin/zcash/ui/design/component/ZashiBigIconButton.kt @@ -32,18 +32,20 @@ fun ZashiBigIconButton( ) { Surface( modifier = - modifier - .clickable( - indication = ripple(), - interactionSource = remember { MutableInteractionSource() }, - onClick = state.onClick, - role = Role.Button, - ), + modifier, shape = RoundedCornerShape(16.dp), color = ZashiColors.Surfaces.bgSecondary ) { Column( - modifier = Modifier.padding(16.dp), + modifier = + Modifier + .clickable( + indication = ripple(), + interactionSource = remember { MutableInteractionSource() }, + onClick = state.onClick, + role = Role.Button, + ) + .padding(16.dp), horizontalAlignment = Alignment.CenterHorizontally ) { Icon( diff --git a/ui-lib/src/androidTest/java/co/electriccoin/zcash/ui/fixture/SendArgumentsWrapperFixture.kt b/ui-lib/src/androidTest/java/co/electriccoin/zcash/ui/fixture/SendArgumentsWrapperFixture.kt deleted file mode 100644 index 3830464be..000000000 --- a/ui-lib/src/androidTest/java/co/electriccoin/zcash/ui/fixture/SendArgumentsWrapperFixture.kt +++ /dev/null @@ -1,20 +0,0 @@ -package co.electriccoin.zcash.ui.fixture - -import cash.z.ecc.android.sdk.fixture.WalletFixture -import cash.z.ecc.android.sdk.model.ZcashNetwork -import cash.z.ecc.android.sdk.type.AddressType -import co.electriccoin.zcash.ui.common.model.SerializableAddress -import co.electriccoin.zcash.ui.screen.send.Send - -internal object SendArgumentsWrapperFixture { - val RECIPIENT_ADDRESS = - SerializableAddress( - address = WalletFixture.Alice.getAddresses(ZcashNetwork.Testnet).unified, - type = AddressType.Unified - ) - - fun new(recipientAddress: SerializableAddress? = RECIPIENT_ADDRESS) = - Send( - recipientAddress = recipientAddress?.toRecipient(), - ) -} diff --git a/ui-lib/src/androidTest/java/co/electriccoin/zcash/ui/screen/send/view/SendViewTest.kt b/ui-lib/src/androidTest/java/co/electriccoin/zcash/ui/screen/send/view/SendViewTest.kt index 2fd810b9e..287074ace 100644 --- a/ui-lib/src/androidTest/java/co/electriccoin/zcash/ui/screen/send/view/SendViewTest.kt +++ b/ui-lib/src/androidTest/java/co/electriccoin/zcash/ui/screen/send/view/SendViewTest.kt @@ -9,15 +9,16 @@ import androidx.compose.ui.test.onNodeWithText import androidx.test.filters.MediumTest import cash.z.ecc.android.sdk.ext.collectWith import cash.z.ecc.android.sdk.fixture.WalletAddressFixture +import cash.z.ecc.android.sdk.fixture.WalletFixture import cash.z.ecc.android.sdk.model.Memo import cash.z.ecc.android.sdk.model.MonetarySeparators import cash.z.ecc.android.sdk.model.Zatoshi +import cash.z.ecc.android.sdk.model.ZcashNetwork import cash.z.ecc.android.sdk.model.ZecSend import cash.z.ecc.sdk.fixture.ZecRequestFixture import cash.z.ecc.sdk.fixture.ZecSendFixture import co.electriccoin.zcash.test.UiTestPrerequisites import co.electriccoin.zcash.ui.R -import co.electriccoin.zcash.ui.fixture.SendArgumentsWrapperFixture import co.electriccoin.zcash.ui.screen.send.SendTag import co.electriccoin.zcash.ui.screen.send.SendViewTestSetup import co.electriccoin.zcash.ui.screen.send.assertOnForm @@ -379,7 +380,7 @@ class SendViewTest : UiTestPrerequisites() { composeTestRule.onNodeWithText(getStringResource(R.string.send_address_hint)).also { it.assertTextEquals( getStringResource(R.string.send_address_hint), - SendArgumentsWrapperFixture.RECIPIENT_ADDRESS.address, + WalletFixture.Alice.getAddresses(ZcashNetwork.Testnet).unified, includeEditableText = true ) } diff --git a/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/appbar/ZashiTopAppBarWithAccountSelection.kt b/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/appbar/ZashiTopAppBarWithAccountSelection.kt index 2de853881..41390c70c 100644 --- a/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/appbar/ZashiTopAppBarWithAccountSelection.kt +++ b/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/appbar/ZashiTopAppBarWithAccountSelection.kt @@ -49,7 +49,7 @@ fun ZashiTopAppBarWithAccountSelection( windowInsets = WindowInsets.systemBars.only(WindowInsetsSides.Top), hamburgerMenuActions = { if (showHideBalances) { - Crossfade(state.balanceVisibilityButton, label = "") { + Crossfade(state.balanceVisibilityButton, label = "BalanceVisibility") { ZashiIconButton(it, modifier = Modifier.size(40.dp)) } Spacer(Modifier.width(4.dp)) diff --git a/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/appbar/ZashiTopAppbar.kt b/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/appbar/ZashiTopAppbar.kt index 8eaceec34..24aba15fc 100644 --- a/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/appbar/ZashiTopAppbar.kt +++ b/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/appbar/ZashiTopAppbar.kt @@ -35,7 +35,7 @@ fun ZashiTopAppbar( }, regularActions = { if (state?.balanceVisibilityButton != null && showHideBalances) { - Crossfade(state.balanceVisibilityButton, label = "") { + Crossfade(state.balanceVisibilityButton, label = "BalanceVisibility") { ZashiIconButton(it, modifier = Modifier.size(40.dp)) } } diff --git a/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/model/SerializableAddress.kt b/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/model/SerializableAddress.kt deleted file mode 100644 index c0ecf8f99..000000000 --- a/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/model/SerializableAddress.kt +++ /dev/null @@ -1,36 +0,0 @@ -package co.electriccoin.zcash.ui.common.model - -import cash.z.ecc.android.sdk.model.WalletAddress -import cash.z.ecc.android.sdk.type.AddressType -import co.electriccoin.zcash.ui.common.extension.AddressTypeAsStringSerializer -import co.electriccoin.zcash.ui.screen.send.model.RecipientAddressState -import kotlinx.coroutines.runBlocking -import kotlinx.serialization.Serializable - -@Serializable -data class SerializableAddress( - val address: String, - @Serializable(with = AddressTypeAsStringSerializer::class) - val type: AddressType -) { - init { - // Basic validation to support the class properties type-safeness - require(address.isNotEmpty()) { - "Address parameter $address can not be empty" - } - } - - internal fun toRecipient() = RecipientAddressState(address, type) - - // Calling the conversion inside the blocking coroutine is ok, as we do not expect it to be time-consuming - internal fun toWalletAddress() = - runBlocking { - when (type) { - AddressType.Unified -> WalletAddress.Unified.new(address) - AddressType.Shielded -> WalletAddress.Sapling.new(address) - AddressType.Transparent -> WalletAddress.Transparent.new(address) - AddressType.Tex -> WalletAddress.Tex.new(address) - is AddressType.Invalid -> error("Invalid address type") - } - } -}