#1420 Code cleanup

Closes #1420
This commit is contained in:
Milan Cerovsky 2024-09-05 12:05:20 +02:00
parent db652d6a39
commit 95ac835b9c
15 changed files with 307 additions and 293 deletions

View File

@ -27,7 +27,6 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.testTag
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.semantics.Role
@ -161,7 +160,8 @@ data class RadioButtonState(
@Suppress("UnusedPrivateMember")
@PreviewScreens
@Composable
private fun RadioButtonPreview() = ZcashTheme {
private fun RadioButtonPreview() =
ZcashTheme {
BlankBgColumn {
var isChecked by remember { mutableStateOf(false) }

View File

@ -193,8 +193,11 @@ class WalletRepositoryImpl(
// complete quickly, it isn't guaranteed to complete before persistExistingWallet()
// unless a mutex is used here.
persistWalletMutex.withLock {
StandardPreferenceKeys.ONBOARDING_STATE.putValue(standardPreferenceProvider(), onboardingState
.toNumber())
StandardPreferenceKeys.ONBOARDING_STATE.putValue(
standardPreferenceProvider(),
onboardingState
.toNumber()
)
}
}
}

View File

@ -100,7 +100,6 @@ class WalletViewModel(
private val standardPreferenceProvider: StandardPreferenceProvider,
private val getAvailableServers: GetDefaultServersProvider
) : AndroidViewModel(application) {
/*
* Using the Mutex may be overkill, but it ensures that if multiple calls are accidentally made
* that they have a consistent ordering.
@ -111,7 +110,6 @@ class WalletViewModel(
val backNavigationCommand = MutableSharedFlow<Unit>()
/**
* Synchronizer that is retained long enough to survive configuration changes.
*/
@ -419,7 +417,6 @@ class WalletViewModel(
)
}
else -> {
BalanceState.Available(
totalBalance = snapshot.totalBalance(),

View File

@ -41,6 +41,7 @@ import co.electriccoin.zcash.ui.common.wallet.ExchangeRateState
import co.electriccoin.zcash.ui.design.component.BlankBgScaffold
import co.electriccoin.zcash.ui.design.component.SmallTopAppBar
import co.electriccoin.zcash.ui.design.component.TopAppBarHideBalancesNavigation
import co.electriccoin.zcash.ui.design.newcomponent.PreviewScreens
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
import co.electriccoin.zcash.ui.fixture.BalanceStateFixture
import co.electriccoin.zcash.ui.fixture.WalletSnapshotFixture
@ -49,7 +50,6 @@ import co.electriccoin.zcash.ui.screen.account.fixture.TransactionsFixture
import co.electriccoin.zcash.ui.screen.account.model.TransactionUiState
import co.electriccoin.zcash.ui.screen.balances.model.StatusAction
import co.electriccoin.zcash.ui.screen.exchangerate.widget.StyledExchangeOptIn
import co.electriccoin.zcash.ui.design.newcomponent.PreviewScreens
import kotlinx.datetime.Clock
@Suppress("UnusedPrivateMember")

View File

@ -35,7 +35,6 @@ import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.rotate
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.platform.testTag
import androidx.compose.ui.res.painterResource
@ -271,8 +270,10 @@ private fun LazyListScope.serverListItems(state: ServerListState) {
RadioButtonCheckedContent(item.radioButtonState)
} else {
Image(
painter = painterResource(
id = if (isSystemInDarkTheme()) {
painter =
painterResource(
id =
if (isSystemInDarkTheme()) {
drawable.ic_radio_button_checked_variant_dark
} else {
drawable.ic_radio_button_checked_variant

View File

@ -15,9 +15,9 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import co.electriccoin.zcash.ui.design.component.ButtonState
import co.electriccoin.zcash.ui.design.newcomponent.PreviewScreens
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
import co.electriccoin.zcash.ui.design.util.stringRes
import co.electriccoin.zcash.ui.design.newcomponent.PreviewScreens
@Composable
fun BottomBar(

View File

@ -48,7 +48,8 @@ internal fun ZashiButton(
colors: ButtonColors = ZashiButtonDefaults.primaryButtonColors(),
content: @Composable RowScope.(ZashiButtonScope) -> Unit = ZashiButtonDefaults.content
) {
val scope = object : ZashiButtonScope {
val scope =
object : ZashiButtonScope {
@Composable
override fun Text() {
Text(text = text)
@ -58,7 +59,8 @@ internal fun ZashiButton(
override fun Loading() {
if (enabled && isLoading) {
LottieProgress(
loadingRes = if (isSystemInDarkTheme()) {
loadingRes =
if (isSystemInDarkTheme()) {
R.raw.lottie_loading
} else {
R.raw.lottie_loading_white
@ -89,7 +91,6 @@ interface ZashiButtonScope {
}
object ZashiButtonDefaults {
val content: @Composable RowScope.(ZashiButtonScope) -> Unit
get() = { scope ->
scope.Text()

View File

@ -64,7 +64,9 @@ fun ZashiTextField(
TextFieldInternal(
value = state.value.getValue(),
onValueChange = state.onValueChange,
modifier = modifier then Modifier.border(
modifier =
modifier then
Modifier.border(
width = 1.dp,
color = ZcashTheme.zashiColors.stroke,
shape = ZashiTextFieldDefaults.shape
@ -121,7 +123,8 @@ private fun TextFieldInternal(
modifier: Modifier = Modifier,
) {
// If color is not provided via the text style, use content color as a default
val textColor = textStyle.color.takeOrElse {
val textColor =
textStyle.color.takeOrElse {
colors.textColor(enabled, isError, interactionSource).value
}
val mergedTextStyle = textStyle.merge(TextStyle(color = textColor))
@ -129,7 +132,8 @@ private fun TextFieldInternal(
CompositionLocalProvider(LocalTextSelectionColors provides colors.selectionColors) {
BasicTextField(
value = value,
modifier = modifier
modifier =
modifier
.defaultMinSize(minWidth = TextFieldDefaults.MinWidth),
onValueChange = onValueChange,
enabled = enabled,
@ -177,7 +181,8 @@ private fun TextFieldColors.textColor(
): State<Color> {
val focused by interactionSource.collectIsFocusedAsState()
val targetValue = when {
val targetValue =
when {
!enabled -> disabledTextColor
isError -> errorTextColor
focused -> focusedTextColor
@ -195,7 +200,6 @@ internal fun TextFieldColors.cursorColor(isError: Boolean): State<Color> {
}
object ZashiTextFieldDefaults {
val shape: Shape
get() = RoundedCornerShape(8.dp)
@ -206,17 +210,20 @@ object ZashiTextFieldDefaults {
unfocusedTextColor: Color = ZcashTheme.zashiColors.textPrimary,
disabledTextColor: Color = ZcashTheme.zashiColors.textPrimary,
errorTextColor: Color = Color.Unspecified,
focusedContainerColor: Color = if (isSystemInDarkTheme()) {
focusedContainerColor: Color =
if (isSystemInDarkTheme()) {
ZcashTheme.zashiColors.bgSecondary
} else {
ZcashTheme.zashiColors.bgPrimary
},
unfocusedContainerColor: Color = if (isSystemInDarkTheme()) {
unfocusedContainerColor: Color =
if (isSystemInDarkTheme()) {
ZcashTheme.zashiColors.bgSecondary
} else {
ZcashTheme.zashiColors.bgPrimary
},
disabledContainerColor: Color = if (isSystemInDarkTheme()) {
disabledContainerColor: Color =
if (isSystemInDarkTheme()) {
ZcashTheme.zashiColors.bgSecondary
} else {
ZcashTheme.zashiColors.bgPrimary
@ -257,7 +264,8 @@ object ZashiTextFieldDefaults {
unfocusedSuffixColor: Color = Color.Unspecified,
disabledSuffixColor: Color = Color.Unspecified,
errorSuffixColor: Color = Color.Unspecified,
): TextFieldColors = TextFieldDefaults.colors(
): TextFieldColors =
TextFieldDefaults.colors(
focusedTextColor = focusedTextColor,
unfocusedTextColor = unfocusedTextColor,
disabledTextColor = disabledTextColor,
@ -307,9 +315,11 @@ object ZashiTextFieldDefaults {
@Suppress("UnusedPrivateMember")
@PreviewScreens
@Composable
private fun ZashiTextFieldPreview() = ZcashTheme {
private fun ZashiTextFieldPreview() =
ZcashTheme {
ZashiTextField(
state = TextFieldState(
state =
TextFieldState(
value = stringRes("Text")
) {}
)

View File

@ -18,12 +18,12 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import co.electriccoin.zcash.ui.R
import co.electriccoin.zcash.ui.design.component.BlankSurface
import co.electriccoin.zcash.ui.design.newcomponent.PreviewScreens
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
import co.electriccoin.zcash.ui.screen.exchangerate.BaseExchangeRateOptIn
import co.electriccoin.zcash.ui.screen.exchangerate.ZashiButton
import co.electriccoin.zcash.ui.screen.exchangerate.ZashiButtonDefaults
import co.electriccoin.zcash.ui.screen.exchangerate.ZashiTextButton
import co.electriccoin.zcash.ui.design.newcomponent.PreviewScreens
@Composable
fun ExchangeRateOptIn(

View File

@ -27,12 +27,12 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import co.electriccoin.zcash.ui.R
import co.electriccoin.zcash.ui.design.component.BlankSurface
import co.electriccoin.zcash.ui.design.newcomponent.PreviewScreens
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
import co.electriccoin.zcash.ui.screen.exchangerate.BaseExchangeRateOptIn
import co.electriccoin.zcash.ui.screen.exchangerate.SecondaryCard
import co.electriccoin.zcash.ui.screen.exchangerate.ZashiButton
import co.electriccoin.zcash.ui.screen.exchangerate.ZashiButtonDefaults
import co.electriccoin.zcash.ui.design.newcomponent.PreviewScreens
@Composable
fun SettingsExchangeRateOptIn(

View File

@ -42,12 +42,12 @@ import co.electriccoin.zcash.ui.common.extension.toKotlinLocale
import co.electriccoin.zcash.ui.common.wallet.ExchangeRateState
import co.electriccoin.zcash.ui.design.component.BlankSurface
import co.electriccoin.zcash.ui.design.component.LottieProgress
import co.electriccoin.zcash.ui.design.newcomponent.PreviewScreens
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
import co.electriccoin.zcash.ui.design.util.StringResource
import co.electriccoin.zcash.ui.design.util.getValue
import co.electriccoin.zcash.ui.design.util.stringRes
import co.electriccoin.zcash.ui.fixture.ObserveFiatCurrencyResultFixture
import co.electriccoin.zcash.ui.design.newcomponent.PreviewScreens
import kotlinx.datetime.Clock
@Suppress("LongParameterList", "ComplexCondition")

View File

@ -9,10 +9,10 @@ import cash.z.ecc.android.sdk.model.FiatCurrencyConversion
import cash.z.ecc.android.sdk.model.Zatoshi
import co.electriccoin.zcash.ui.common.wallet.ExchangeRateState
import co.electriccoin.zcash.ui.design.component.BlankSurface
import co.electriccoin.zcash.ui.design.newcomponent.PreviewScreens
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
import co.electriccoin.zcash.ui.design.util.StringResource
import co.electriccoin.zcash.ui.design.util.stringRes
import co.electriccoin.zcash.ui.design.newcomponent.PreviewScreens
import kotlinx.datetime.Clock
@Suppress("LongParameterList", "ComplexCondition")

View File

@ -24,11 +24,11 @@ import androidx.compose.ui.unit.sp
import co.electriccoin.zcash.ui.R
import co.electriccoin.zcash.ui.common.wallet.ExchangeRateState
import co.electriccoin.zcash.ui.design.component.BlankSurface
import co.electriccoin.zcash.ui.design.newcomponent.PreviewScreens
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
import co.electriccoin.zcash.ui.screen.exchangerate.SecondaryCard
import co.electriccoin.zcash.ui.screen.exchangerate.ZashiButton
import co.electriccoin.zcash.ui.screen.exchangerate.ZashiButtonDefaults
import co.electriccoin.zcash.ui.design.newcomponent.PreviewScreens
@Suppress("LongMethod")
@Composable

View File

@ -35,8 +35,8 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.compose.ui.window.Popup
import co.electriccoin.zcash.ui.R
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
import co.electriccoin.zcash.ui.design.newcomponent.PreviewScreens
import co.electriccoin.zcash.ui.design.theme.ZcashTheme
@Composable
internal fun StyledExchangeUnavailablePopup(

View File

@ -3,6 +3,7 @@ package co.electroniccoin.zcash.ui.screenshot
import android.app.Application
import android.content.Context
import co.electriccoin.zcash.di.coreModule
import co.electriccoin.zcash.di.providerModule
import co.electriccoin.zcash.di.repositoryModule
import co.electriccoin.zcash.di.useCaseModule
import co.electriccoin.zcash.di.viewModelModule
@ -29,6 +30,7 @@ class ZcashUiTestApplication : Application() {
androidContext(this@ZcashUiTestApplication)
modules(
coreModule,
providerModule,
repositoryModule,
useCaseModule,
viewModelModule