Skip to content

Commit 0eb4fcb

Browse files
committed
fix: ln invoice extraction
1 parent ec2469c commit 0eb4fcb

File tree

3 files changed

+9
-27
lines changed

3 files changed

+9
-27
lines changed

app/src/main/java/to/bitkit/ui/screens/wallets/receive/ReceiveInvoiceUtils.kt

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -48,23 +48,24 @@ fun getInvoiceForTab(
4848
bip21: String,
4949
bolt11: String,
5050
cjitInvoice: String?,
51-
onchainAddress: String
51+
isNodeRunning: Boolean,
52+
onchainAddress: String,
5253
): String {
5354
return when (tab) {
5455
ReceiveTab.SAVINGS -> {
5556
// Pure onchain: strip lightning from BIP21
5657
val strippedBip21 = stripLightningFromBip21(bip21)
5758
strippedBip21.ifEmpty { onchainAddress }
5859
}
60+
5961
ReceiveTab.AUTO -> {
60-
// Unified: prefer CJIT > full BIP21
61-
cjitInvoice?.takeIf { it.isNotEmpty() }
62-
?: bip21.ifEmpty { onchainAddress }
62+
bip21.takeIf { isNodeRunning }.orEmpty()
6363
}
64+
6465
ReceiveTab.SPENDING -> {
6566
// Lightning only: prefer CJIT > bolt11
66-
cjitInvoice?.takeIf { it.isNotEmpty() }
67-
?: bolt11.ifEmpty { onchainAddress }
67+
cjitInvoice?.takeIf { it.isNotEmpty() && isNodeRunning }
68+
?: bolt11
6869
}
6970
}
7071
}
@@ -84,20 +85,7 @@ fun getQrLogoResource(tab: ReceiveTab, hasCjit: Boolean): Int {
8485
if (hasCjit) R.drawable.ic_unified_circle
8586
else R.drawable.ic_unified_circle
8687
}
88+
8789
ReceiveTab.SPENDING -> R.drawable.ic_ln_circle
8890
}
8991
}
90-
91-
/**
92-
* Extension: Check if node lifecycle state is running.
93-
*/
94-
fun NodeLifecycleState.isRunning(): Boolean {
95-
return this == NodeLifecycleState.Running
96-
}
97-
98-
/**
99-
* Extension: Check if node lifecycle state is starting.
100-
*/
101-
fun NodeLifecycleState.isStarting(): Boolean {
102-
return this == NodeLifecycleState.Starting
103-
}

app/src/main/java/to/bitkit/ui/screens/wallets/receive/ReceiveQrScreen.kt

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ import to.bitkit.viewmodels.MainUiState
6464
@Composable
6565
fun ReceiveQrScreen(
6666
cjitInvoice: MutableState<String?>,
67-
cjitActive: MutableState<Boolean>,
6867
walletState: MainUiState,
6968
lightningState: to.bitkit.repositories.LightningState,
7069
onClickEditInvoice: () -> Unit,
@@ -112,6 +111,7 @@ fun ReceiveQrScreen(
112111
bip21 = walletState.bip21,
113112
bolt11 = walletState.bolt11,
114113
cjitInvoice = cjitInvoice.value,
114+
isNodeRunning = walletState.nodeLifecycleState.isRunning(),
115115
onchainAddress = walletState.onchainAddress
116116
)
117117
}
@@ -449,7 +449,6 @@ private fun PreviewSavingsMode() {
449449
BottomSheetPreview {
450450
ReceiveQrScreen(
451451
cjitInvoice = remember { mutableStateOf(null) },
452-
cjitActive = remember { mutableStateOf(false) },
453452
walletState = MainUiState(
454453
nodeLifecycleState = NodeLifecycleState.Running,
455454
onchainAddress = "bcrt1qfserxgtuesul4m9zva56wzk849yf9l8rk4qy0l",
@@ -518,7 +517,6 @@ private fun PreviewAutoMode() {
518517
BottomSheetPreview {
519518
ReceiveQrScreen(
520519
cjitInvoice = remember { mutableStateOf(null) },
521-
cjitActive = remember { mutableStateOf(false) },
522520
walletState = MainUiState(
523521
nodeLifecycleState = NodeLifecycleState.Running,
524522
onchainAddress = "bcrt1qfserxgtuesul4m9zva56wzk849yf9l8rk4qy0l",
@@ -547,7 +545,6 @@ private fun PreviewSpendingMode() {
547545
BottomSheetPreview {
548546
ReceiveQrScreen(
549547
cjitInvoice = remember { mutableStateOf(null) },
550-
cjitActive = remember { mutableStateOf(false) },
551548
walletState = MainUiState(
552549
nodeLifecycleState = NodeLifecycleState.Running,
553550
bolt11 = "lnbcrt500u1pn7umn7pp5x0s9lt9fwrff6rp70pz3guwnjgw97sjuv79vhx9n2ps8q6tcdehhxapqd9h8vmmfvdjjqen0wgsyqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxq"
@@ -572,7 +569,6 @@ private fun PreviewNodeNotReady() {
572569
BottomSheetPreview {
573570
ReceiveQrScreen(
574571
cjitInvoice = remember { mutableStateOf(null) },
575-
cjitActive = remember { mutableStateOf(false) },
576572
walletState = MainUiState(
577573
nodeLifecycleState = NodeLifecycleState.Starting,
578574
),
@@ -595,7 +591,6 @@ private fun PreviewSmall() {
595591
BottomSheetPreview {
596592
ReceiveQrScreen(
597593
cjitInvoice = remember { mutableStateOf(null) },
598-
cjitActive = remember { mutableStateOf(false) },
599594
walletState = MainUiState(
600595
nodeLifecycleState = NodeLifecycleState.Running,
601596
),

app/src/main/java/to/bitkit/ui/screens/wallets/receive/ReceiveSheet.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@ fun ReceiveSheet(
7676

7777
ReceiveQrScreen(
7878
cjitInvoice = cjitInvoice,
79-
cjitActive = showCreateCjit,
8079
walletState = walletState,
8180
lightningState = lightningState,
8281
onClickEditInvoice = { navController.navigate(ReceiveRoute.EditInvoice) },

0 commit comments

Comments
 (0)