add paste from clipboard button to nwc

This commit is contained in:
greenart7c3
2024-05-16 14:13:40 -03:00
parent de391f03b1
commit 404278a4e3

View File

@@ -47,6 +47,7 @@ import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.text.KeyboardOptions import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.foundation.verticalScroll import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons 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.Visibility
import androidx.compose.material.icons.outlined.VisibilityOff import androidx.compose.material.icons.outlined.VisibilityOff
import androidx.compose.material3.Button import androidx.compose.material3.Button
@@ -63,11 +64,11 @@ import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.setValue import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalClipboardManager
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalUriHandler import androidx.compose.ui.platform.LocalUriHandler
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
@@ -114,6 +115,13 @@ class UpdateZapAmountViewModel(val account: Account) : ViewModel() {
var walletConnectSecret by mutableStateOf(TextFieldValue("")) var walletConnectSecret by mutableStateOf(TextFieldValue(""))
var selectedZapType by mutableStateOf(LnZapEvent.ZapType.PRIVATE) var selectedZapType by mutableStateOf(LnZapEvent.ZapType.PRIVATE)
fun copyFromClipboard(text: String) {
if (text.isBlank()) {
return
}
updateNIP47(text)
}
fun load() { fun load() {
this.amountSet = account.zapAmountChoices this.amountSet = account.zapAmountChoices
this.walletConnectPubkey = this.walletConnectPubkey =
@@ -224,7 +232,7 @@ fun UpdateZapAmountDialog(
accountViewModel: AccountViewModel, accountViewModel: AccountViewModel,
) { ) {
val context = LocalContext.current val context = LocalContext.current
val scope = rememberCoroutineScope() val clipboardManager = LocalClipboardManager.current
val postViewModel: UpdateZapAmountViewModel = val postViewModel: UpdateZapAmountViewModel =
viewModel( 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 }) { IconButton(onClick = { qrScanning = true }) {
Icon( Icon(
painter = painterResource(R.drawable.ic_qrcode), painter = painterResource(R.drawable.ic_qrcode),