From b54a09dcffae93edffd81b1dad45e008d40db442 Mon Sep 17 00:00:00 2001 From: Milan Cerovsky Date: Fri, 25 Apr 2025 11:44:22 +0200 Subject: [PATCH] Bugfixes --- .../ui/common/provider/BooleanStorageProvider.kt | 8 +++++++- .../ui/common/usecase/GetCoinbaseStatusUseCase.kt | 14 +++----------- .../home/shieldfunds/ShieldFundsInfoViewModel.kt | 4 +--- ui-lib/src/main/res/ui/home/values-es/strings.xml | 4 ++-- 4 files changed, 13 insertions(+), 17 deletions(-) diff --git a/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/provider/BooleanStorageProvider.kt b/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/provider/BooleanStorageProvider.kt index 3e5d7fd73..499986822 100644 --- a/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/provider/BooleanStorageProvider.kt +++ b/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/provider/BooleanStorageProvider.kt @@ -4,7 +4,9 @@ import co.electriccoin.zcash.preference.model.entry.BooleanPreferenceDefault import co.electriccoin.zcash.preference.model.entry.NullableBooleanPreferenceDefault import co.electriccoin.zcash.preference.model.entry.PreferenceKey -interface BooleanStorageProvider : StorageProvider +interface BooleanStorageProvider : StorageProvider { + suspend fun flip() +} interface NullableBooleanStorageProvider : NullableStorageProvider @@ -14,6 +16,10 @@ abstract class BaseBooleanStorageProvider( ) : BaseStorageProvider(), BooleanStorageProvider { override val default = BooleanPreferenceDefault(key = key, defaultValue = default) + + override suspend fun flip() { + store(!get()) + } } abstract class BaseNullableBooleanStorageProvider( diff --git a/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/usecase/GetCoinbaseStatusUseCase.kt b/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/usecase/GetCoinbaseStatusUseCase.kt index 50bf93e0b..d1b69fa6a 100644 --- a/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/usecase/GetCoinbaseStatusUseCase.kt +++ b/ui-lib/src/main/java/co/electriccoin/zcash/ui/common/usecase/GetCoinbaseStatusUseCase.kt @@ -1,30 +1,22 @@ package co.electriccoin.zcash.ui.common.usecase -import co.electriccoin.zcash.ui.common.datasource.AccountDataSource import co.electriccoin.zcash.ui.common.repository.ConfigurationRepository -import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.filterNotNull -import kotlinx.coroutines.flow.flatMapLatest -import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.flow.map class GetCoinbaseStatusUseCase( private val configurationRepository: ConfigurationRepository, - private val accountDataSource: AccountDataSource, ) { - @OptIn(ExperimentalCoroutinesApi::class) fun observe() = configurationRepository .isCoinbaseAvailable .filterNotNull() - .flatMapLatest { isAvailable -> + .map { isAvailable -> if (isAvailable) { - accountDataSource.selectedAccount.map { - Status.ENABLED - } + Status.ENABLED } else { - flowOf(Status.UNAVAILABLE) + Status.UNAVAILABLE } }.distinctUntilChanged() } diff --git a/ui-lib/src/main/java/co/electriccoin/zcash/ui/screen/home/shieldfunds/ShieldFundsInfoViewModel.kt b/ui-lib/src/main/java/co/electriccoin/zcash/ui/screen/home/shieldfunds/ShieldFundsInfoViewModel.kt index 5b6687bcf..8a18fae89 100644 --- a/ui-lib/src/main/java/co/electriccoin/zcash/ui/screen/home/shieldfunds/ShieldFundsInfoViewModel.kt +++ b/ui-lib/src/main/java/co/electriccoin/zcash/ui/screen/home/shieldfunds/ShieldFundsInfoViewModel.kt @@ -55,9 +55,7 @@ class ShieldFundsInfoViewModel( initialValue = null ) - private fun onCheckboxClick() = viewModelScope.launch { - shieldFundsInfoProvider.store(!shieldFundsInfoProvider.get()) - } + private fun onCheckboxClick() = viewModelScope.launch { shieldFundsInfoProvider.flip() } private fun onNotNowClick() = navigationRouter.back() diff --git a/ui-lib/src/main/res/ui/home/values-es/strings.xml b/ui-lib/src/main/res/ui/home/values-es/strings.xml index 7aae1e5c3..378e8d0bb 100644 --- a/ui-lib/src/main/res/ui/home/values-es/strings.xml +++ b/ui-lib/src/main/res/ui/home/values-es/strings.xml @@ -34,8 +34,8 @@ Si pierdes acceso a la app o a tu dispositivo, conocer la Frase Secreta de Recuperación es la única forma de recuperar tus fondos. Nosotros no podemos verla ni ayudarte a recuperarla. Cualquiera que tenga acceso a tu Frase Secreta de Recuperación tendrá control total de tu billetera, así que mantenla segura y no la compartas con nadie. He leído y entiendo los riesgos de no respaldar mi billetera. - Not now - Do not show this message again. + Ahora no + No mostrar este mensaje de nuevo. Proteger Siempre proteger fondos transparentes Para proteger la privacidad del usuario, Zashi no permite gastar ZEC transparentes. Toca el botón "Proteger" para hacer que tus fondos transparentes se puedan usar y mantener tu saldo de Zashi privado.