From 404278a4e3762aff9c65798a529966d6749f77e7 Mon Sep 17 00:00:00 2001 From: greenart7c3 Date: Thu, 16 May 2024 14:13:40 -0300 Subject: [PATCH] add paste from clipboard button to nwc --- .../amethyst/ui/note/UpdateZapAmountDialog.kt | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/UpdateZapAmountDialog.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/UpdateZapAmountDialog.kt index b7ae9a60b..9b4f2ac9c 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/UpdateZapAmountDialog.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/UpdateZapAmountDialog.kt @@ -47,6 +47,7 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.ContentPaste import androidx.compose.material.icons.outlined.Visibility import androidx.compose.material.icons.outlined.VisibilityOff import androidx.compose.material3.Button @@ -63,11 +64,11 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember -import androidx.compose.runtime.rememberCoroutineScope import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color +import androidx.compose.ui.platform.LocalClipboardManager import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.res.painterResource @@ -114,6 +115,13 @@ class UpdateZapAmountViewModel(val account: Account) : ViewModel() { var walletConnectSecret by mutableStateOf(TextFieldValue("")) var selectedZapType by mutableStateOf(LnZapEvent.ZapType.PRIVATE) + fun copyFromClipboard(text: String) { + if (text.isBlank()) { + return + } + updateNIP47(text) + } + fun load() { this.amountSet = account.zapAmountChoices this.walletConnectPubkey = @@ -224,7 +232,7 @@ fun UpdateZapAmountDialog( accountViewModel: AccountViewModel, ) { val context = LocalContext.current - val scope = rememberCoroutineScope() + val clipboardManager = LocalClipboardManager.current val postViewModel: UpdateZapAmountViewModel = viewModel( @@ -450,6 +458,19 @@ fun UpdateZapAmountDialog( ) } + IconButton( + onClick = { + clipboardManager.getText()?.let { postViewModel.copyFromClipboard(it.text) } + }, + ) { + Icon( + Icons.Default.ContentPaste, + contentDescription = stringResource(id = R.string.paste_from_clipboard), + modifier = Modifier.size(24.dp), + tint = MaterialTheme.colorScheme.primary, + ) + } + IconButton(onClick = { qrScanning = true }) { Icon( painter = painterResource(R.drawable.ic_qrcode),