Code cleanup

This commit is contained in:
Milan Cerovsky 2025-03-20 09:43:04 +01:00
parent 8c6d873d04
commit 463b16e349
6 changed files with 15 additions and 68 deletions

View File

@ -32,18 +32,20 @@ fun ZashiBigIconButton(
) { ) {
Surface( Surface(
modifier = modifier =
modifier modifier,
.clickable(
indication = ripple(),
interactionSource = remember { MutableInteractionSource() },
onClick = state.onClick,
role = Role.Button,
),
shape = RoundedCornerShape(16.dp), shape = RoundedCornerShape(16.dp),
color = ZashiColors.Surfaces.bgSecondary color = ZashiColors.Surfaces.bgSecondary
) { ) {
Column( 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 horizontalAlignment = Alignment.CenterHorizontally
) { ) {
Icon( Icon(

View File

@ -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(),
)
}

View File

@ -9,15 +9,16 @@ import androidx.compose.ui.test.onNodeWithText
import androidx.test.filters.MediumTest import androidx.test.filters.MediumTest
import cash.z.ecc.android.sdk.ext.collectWith import cash.z.ecc.android.sdk.ext.collectWith
import cash.z.ecc.android.sdk.fixture.WalletAddressFixture 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.Memo
import cash.z.ecc.android.sdk.model.MonetarySeparators import cash.z.ecc.android.sdk.model.MonetarySeparators
import cash.z.ecc.android.sdk.model.Zatoshi 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.android.sdk.model.ZecSend
import cash.z.ecc.sdk.fixture.ZecRequestFixture import cash.z.ecc.sdk.fixture.ZecRequestFixture
import cash.z.ecc.sdk.fixture.ZecSendFixture import cash.z.ecc.sdk.fixture.ZecSendFixture
import co.electriccoin.zcash.test.UiTestPrerequisites import co.electriccoin.zcash.test.UiTestPrerequisites
import co.electriccoin.zcash.ui.R 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.SendTag
import co.electriccoin.zcash.ui.screen.send.SendViewTestSetup import co.electriccoin.zcash.ui.screen.send.SendViewTestSetup
import co.electriccoin.zcash.ui.screen.send.assertOnForm import co.electriccoin.zcash.ui.screen.send.assertOnForm
@ -379,7 +380,7 @@ class SendViewTest : UiTestPrerequisites() {
composeTestRule.onNodeWithText(getStringResource(R.string.send_address_hint)).also { composeTestRule.onNodeWithText(getStringResource(R.string.send_address_hint)).also {
it.assertTextEquals( it.assertTextEquals(
getStringResource(R.string.send_address_hint), getStringResource(R.string.send_address_hint),
SendArgumentsWrapperFixture.RECIPIENT_ADDRESS.address, WalletFixture.Alice.getAddresses(ZcashNetwork.Testnet).unified,
includeEditableText = true includeEditableText = true
) )
} }

View File

@ -49,7 +49,7 @@ fun ZashiTopAppBarWithAccountSelection(
windowInsets = WindowInsets.systemBars.only(WindowInsetsSides.Top), windowInsets = WindowInsets.systemBars.only(WindowInsetsSides.Top),
hamburgerMenuActions = { hamburgerMenuActions = {
if (showHideBalances) { if (showHideBalances) {
Crossfade(state.balanceVisibilityButton, label = "") { Crossfade(state.balanceVisibilityButton, label = "BalanceVisibility") {
ZashiIconButton(it, modifier = Modifier.size(40.dp)) ZashiIconButton(it, modifier = Modifier.size(40.dp))
} }
Spacer(Modifier.width(4.dp)) Spacer(Modifier.width(4.dp))

View File

@ -35,7 +35,7 @@ fun ZashiTopAppbar(
}, },
regularActions = { regularActions = {
if (state?.balanceVisibilityButton != null && showHideBalances) { if (state?.balanceVisibilityButton != null && showHideBalances) {
Crossfade(state.balanceVisibilityButton, label = "") { Crossfade(state.balanceVisibilityButton, label = "BalanceVisibility") {
ZashiIconButton(it, modifier = Modifier.size(40.dp)) ZashiIconButton(it, modifier = Modifier.size(40.dp))
} }
} }

View File

@ -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")
}
}
}