From 6c3abe17ed9f108507eadf2a8a561be8a9da5e83 Mon Sep 17 00:00:00 2001 From: Believethehype Date: Sun, 3 Dec 2023 15:02:22 +0100 Subject: [PATCH 1/2] add a button to cashu preview to redeem on external wallet, additional to melting to ln --- .../amethyst/ui/components/CashuRedeem.kt | 25 +++++++++++++++++-- app/src/main/res/values/strings.xml | 1 + 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/CashuRedeem.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/CashuRedeem.kt index 86d37e81c..046f9cbed 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/CashuRedeem.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/CashuRedeem.kt @@ -178,12 +178,32 @@ fun CashuPreview(token: CashuToken, accountViewModel: AccountViewModel) { Spacer(modifier = StdHorzSpacer) Text( - stringResource(R.string.cashu_redeem), + "⚡", color = Color.White, - fontSize = 18.sp + fontSize = 16.sp ) } + Spacer(modifier = StdHorzSpacer) + Button( + onClick = { + try { + val intent = Intent(Intent.ACTION_VIEW, Uri.parse("cashu://$token")) + intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK + + startActivity(context, intent, null) + } catch (e: Exception) { + accountViewModel.toast("Cashu", context.getString(R.string.cashu_no_wallet_found)) + } + }, + shape = QuoteBorder, + colors = ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.primary + ) + ) { + Spacer(modifier = StdHorzSpacer) + Text("\uD83E\uDD5C", color = Color.White, fontSize = 16.sp) + } Spacer(modifier = StdHorzSpacer) Button( @@ -205,6 +225,7 @@ fun CashuPreview(token: CashuToken, accountViewModel: AccountViewModel) { ) { Text("⎘", color = Color.White, fontSize = 18.sp) } + Spacer(modifier = StdHorzSpacer) } } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a7371d7b1..88b3b25e0 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -629,6 +629,7 @@ Cashu Received %1$s sats were sent to your wallet. (Fees: %2$s sats) + No compatible Cashu wallet found on system Unable to fetch invoice from receiver\'s servers From a80c03a2d26d8153d71fee2a667dd1dd7bedac52 Mon Sep 17 00:00:00 2001 From: Believethehype Date: Mon, 4 Dec 2023 16:20:40 +0100 Subject: [PATCH 2/2] Update CashuRedeem.kt --- .../amethyst/ui/components/CashuRedeem.kt | 81 ++++++++----------- 1 file changed, 35 insertions(+), 46 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/CashuRedeem.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/CashuRedeem.kt index 046f9cbed..2745ef851 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/components/CashuRedeem.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/components/CashuRedeem.kt @@ -175,58 +175,47 @@ fun CashuPreview(token: CashuToken, accountViewModel: AccountViewModel) { LoadingAnimation() } - Spacer(modifier = StdHorzSpacer) - Text( - "⚡", + "⚡ Send to Zap Wallet", color = Color.White, fontSize = 16.sp ) } - - Spacer(modifier = StdHorzSpacer) - Button( - onClick = { - try { - val intent = Intent(Intent.ACTION_VIEW, Uri.parse("cashu://$token")) - intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK - - startActivity(context, intent, null) - } catch (e: Exception) { - accountViewModel.toast("Cashu", context.getString(R.string.cashu_no_wallet_found)) - } - }, - shape = QuoteBorder, - colors = ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.primary - ) - ) { - Spacer(modifier = StdHorzSpacer) - Text("\uD83E\uDD5C", color = Color.White, fontSize = 16.sp) - } - Spacer(modifier = StdHorzSpacer) - - Button( - onClick = { - if (useWebService) { - // In case we want to use the cashu.me webservice - val url = "https://redeem.cashu.me?token=$token&lightning=$lud16&autopay=false" - val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url)) - startActivity(context, intent, null) - } else { - // Copying the token to clipboard for now - clipboardManager.setText(AnnotatedString(token.token)) - } - }, - shape = QuoteBorder, - colors = ButtonDefaults.buttonColors( - containerColor = MaterialTheme.colorScheme.primary - ) - ) { - Text("⎘", color = Color.White, fontSize = 18.sp) - } - Spacer(modifier = StdHorzSpacer) } + + Spacer(modifier = StdHorzSpacer) + Button( + onClick = { + try { + val intent = Intent(Intent.ACTION_VIEW, Uri.parse("cashu://$token")) + intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK + + startActivity(context, intent, null) + } catch (e: Exception) { + accountViewModel.toast("Cashu", context.getString(R.string.cashu_no_wallet_found)) + } + }, + shape = QuoteBorder, + colors = ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.primary + ) + ) { + Text("\uD83E\uDD5C Open in Cashu Wallet", color = Color.White, fontSize = 16.sp) + } + Spacer(modifier = StdHorzSpacer) + Button( + onClick = { + // Copying the token to clipboard + clipboardManager.setText(AnnotatedString(token.token)) + }, + shape = QuoteBorder, + colors = ButtonDefaults.buttonColors( + containerColor = MaterialTheme.colorScheme.primary + ) + ) { + Text("⎘ Copy ", color = Color.White, fontSize = 16.sp) + } + Spacer(modifier = StdHorzSpacer) } } }