From 47a32eb837bce8132421f14ce05c8b291cc7ed05 Mon Sep 17 00:00:00 2001 From: Dominique Padiou <5765435+dpad85@users.noreply.github.com> Date: Wed, 10 Jul 2024 12:58:50 +0200 Subject: [PATCH] (android) Prevent claiming address if wallet has no channels --- .../phoenix/android/settings/ExperimentalView.kt | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/phoenix-android/src/main/kotlin/fr/acinq/phoenix/android/settings/ExperimentalView.kt b/phoenix-android/src/main/kotlin/fr/acinq/phoenix/android/settings/ExperimentalView.kt index f33438b10..efc65097b 100644 --- a/phoenix-android/src/main/kotlin/fr/acinq/phoenix/android/settings/ExperimentalView.kt +++ b/phoenix-android/src/main/kotlin/fr/acinq/phoenix/android/settings/ExperimentalView.kt @@ -22,6 +22,7 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.material.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.setValue @@ -47,6 +48,7 @@ import fr.acinq.phoenix.android.components.PhoenixIcon import fr.acinq.phoenix.android.components.settings.Setting import fr.acinq.phoenix.android.utils.copyToClipboard import fr.acinq.phoenix.android.utils.datastore.InternalDataRepository +import fr.acinq.phoenix.data.canRequestLiquidity import fr.acinq.phoenix.managers.PeerManager import kotlinx.coroutines.delay import kotlinx.coroutines.flow.first @@ -137,6 +139,9 @@ private fun ClaimAddressButton( state: ClaimAddressState, onClaim: () -> Unit, ) { + val channels by business.peerManager.channelsFlow.collectAsState() + val canClaimAddress = channels.canRequestLiquidity() + when (state) { is ClaimAddressState.Init -> { Setting( @@ -152,7 +157,13 @@ private fun ClaimAddressButton( subtitle = { Text(text = stringResource(id = R.string.bip353_subtitle)) Spacer(modifier = Modifier.height(8.dp)) - FilledButton(text = stringResource(id = R.string.bip353_claim_button), onClick = onClaim, padding = PaddingValues(horizontal = 12.dp, vertical = 8.dp)) + FilledButton( + text = stringResource(id = R.string.bip353_claim_button), + onClick = onClaim, + padding = PaddingValues(horizontal = 12.dp, vertical = 8.dp), + enabled = canClaimAddress, + enabledEffect = true, + ) } ) }