Skip to content
13 changes: 10 additions & 3 deletions app/src/main/java/to/bitkit/repositories/LightningRepo.kt
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
import to.bitkit.di.BgDispatcher
import to.bitkit.env.Env
import to.bitkit.ext.getSatsPerVByteFor
import to.bitkit.ext.totalNextOutboundHtlcLimitSats
import to.bitkit.models.CoinSelectionPreference
import to.bitkit.models.ElectrumServer
import to.bitkit.models.LnPeer
Expand Down Expand Up @@ -671,7 +672,7 @@
Result.success(Unit)
}

suspend fun syncState() {
suspend fun syncState(): Result<Unit> = executeWhenNodeRunning("sync State") {
_lightningState.update {
it.copy(
nodeId = getNodeId().orEmpty(),
Expand All @@ -680,10 +681,16 @@
channels = getChannels().orEmpty(),
)
}
Result.success(Unit)
}

fun canSend(amountSats: ULong): Boolean =
_lightningState.value.nodeLifecycleState.isRunning() && lightningService.canSend(amountSats)
suspend fun canSend(amountSats: ULong, fallbackToCachedBalance: Boolean = true): Boolean {
return if (!_lightningState.value.nodeLifecycleState.isRunning() && fallbackToCachedBalance) {
amountSats <= (cacheStore.data.first().balance?.maxSendLightningSats ?: 0u)
} else {
lightningService.canSend(amountSats)
}
}

fun getSyncFlow(): Flow<Unit> = lightningService.syncFlow()

Expand Down
8 changes: 4 additions & 4 deletions app/src/main/java/to/bitkit/viewmodels/AppViewModel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -351,7 +351,7 @@ class AppViewModel @Inject constructor(
}
}

private fun onAmountChange(value: String) {
private fun onAmountChange(value: String) = viewModelScope.launch {
_sendUiState.update {
it.copy(
amountInput = value,
Expand Down Expand Up @@ -405,7 +405,7 @@ class AppViewModel @Inject constructor(
}
}

private fun onPaymentMethodSwitch() {
private fun onPaymentMethodSwitch() = viewModelScope.launch {
val nextPaymentMethod = when (_sendUiState.value.payMethod) {
SendMethod.ONCHAIN -> SendMethod.LIGHTNING
SendMethod.LIGHTNING -> SendMethod.ONCHAIN
Expand Down Expand Up @@ -451,7 +451,7 @@ class AppViewModel @Inject constructor(
setSendEffect(SendEffect.NavigateToConfirm)
}

private fun validateAmount(
private suspend fun validateAmount(
value: String,
payMethod: SendMethod = _sendUiState.value.payMethod,
): Boolean {
Expand Down Expand Up @@ -826,7 +826,7 @@ class AppViewModel @Inject constructor(
return false
}

private fun resetAmountInput() {
private fun resetAmountInput() = viewModelScope.launch {
_sendUiState.update { state ->
state.copy(
amountInput = state.amount.toString(),
Expand Down
Loading