From 76737e6b746a675f034fa35032f133c206f9fecd Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Tue, 14 Feb 2023 11:37:41 -0500 Subject: [PATCH] Adding Zaps to the profile --- .../main/java/com/vitorpamplona/amethyst/model/Account.kt | 5 ++++- .../vitorpamplona/amethyst/ui/components/InvoiceRequest.kt | 7 +++++-- .../amethyst/ui/screen/loggedIn/ProfileScreen.kt | 6 +++--- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt index f7064557a..147bf2114 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt @@ -137,9 +137,12 @@ class Account( } fun createZapRequestFor(user: User): LnZapRequestEvent? { + return createZapRequestFor(user.pubkeyHex) + } + fun createZapRequestFor(userPubKeyHex: String): LnZapRequestEvent? { if (!isWriteable()) return null - return LnZapRequestEvent.create(user.pubkeyHex, userProfile().relays?.keys ?: localRelays.map { it.url }.toSet(), loggedIn.privKey!!) + return LnZapRequestEvent.create(userPubKeyHex, userProfile().relays?.keys ?: localRelays.map { it.url }.toSet(), loggedIn.privKey!!) } fun report(note: Note, type: ReportEvent.ReportType) { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/InvoiceRequest.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/InvoiceRequest.kt index 66b40dd84..50e0fe2e9 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/InvoiceRequest.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/InvoiceRequest.kt @@ -38,10 +38,11 @@ import androidx.compose.ui.unit.sp import androidx.core.content.ContextCompat.startActivity import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.lnurl.LightningAddressResolver +import com.vitorpamplona.amethyst.model.Account import kotlinx.coroutines.launch @Composable -fun InvoiceRequest(lud16: String, onClose: () -> Unit ) { +fun InvoiceRequest(lud16: String, toUserPubKeyHex: String, account: Account, onClose: () -> Unit ) { val context = LocalContext.current val scope = rememberCoroutineScope() @@ -128,7 +129,9 @@ fun InvoiceRequest(lud16: String, onClose: () -> Unit ) { Button( modifier = Modifier.fillMaxWidth().padding(vertical = 10.dp), onClick = { - LightningAddressResolver().lnAddressInvoice(lud16, amount * 1000, message, + val zapRequest = account.createZapRequestFor(toUserPubKeyHex) + + LightningAddressResolver().lnAddressInvoice(lud16, amount * 1000, message, zapRequest?.toJson(), onSuccess = { runCatching { val intent = Intent(Intent.ACTION_VIEW, Uri.parse("lightning:$it")) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ProfileScreen.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ProfileScreen.kt index 8fcc06b44..cb80e9fb1 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ProfileScreen.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/ProfileScreen.kt @@ -332,7 +332,7 @@ private fun ProfileHeader( } } - DrawAdditionalInfo(baseUser) + DrawAdditionalInfo(baseUser, account) Divider(modifier = Modifier.padding(top = 6.dp)) } @@ -340,7 +340,7 @@ private fun ProfileHeader( } @Composable -private fun DrawAdditionalInfo(baseUser: User) { +private fun DrawAdditionalInfo(baseUser: User, account: Account) { val userState by baseUser.liveMetadata.observeAsState() val user = userState?.user ?: return @@ -400,7 +400,7 @@ private fun DrawAdditionalInfo(baseUser: User) { if (ZapExpanded) { Row(verticalAlignment = Alignment.CenterVertically, modifier = Modifier.padding(vertical = 5.dp)) { - InvoiceRequest(lud16) { + InvoiceRequest(lud16, baseUser.pubkeyHex, account) { ZapExpanded = false } }