From 4bb5af78f6c103d73a804efba133bd9693ca2eee Mon Sep 17 00:00:00 2001 From: greenart7c3 Date: Wed, 30 Oct 2024 11:48:13 -0300 Subject: [PATCH] Add option to copy public key to clipboard --- .../ui/actions/AccountsBottomSheet.kt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/ui/actions/AccountsBottomSheet.kt b/app/src/main/java/com/greenart7c3/nostrsigner/ui/actions/AccountsBottomSheet.kt index f559f2dd..b7fcd75b 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/ui/actions/AccountsBottomSheet.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/ui/actions/AccountsBottomSheet.kt @@ -14,6 +14,7 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack +import androidx.compose.material.icons.filled.ContentCopy import androidx.compose.material.icons.filled.Edit import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Icon @@ -33,8 +34,10 @@ import androidx.compose.runtime.remember import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.platform.LocalClipboardManager import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.TextFieldValue import androidx.compose.ui.unit.dp @@ -60,6 +63,8 @@ fun AccountsBottomSheet( accountStateViewModel: AccountStateViewModel, onClose: () -> Unit, ) { + val clipboardManager = LocalClipboardManager.current + ModalBottomSheet( sheetState = sheetState, onDismissRequest = { @@ -127,6 +132,18 @@ fun AccountsBottomSheet( ) } + IconButton( + onClick = { + clipboardManager.setText(AnnotatedString(acc.npub)) + }, + ) { + Icon( + imageVector = Icons.Default.ContentCopy, + contentDescription = stringResource(R.string.copy_to_clipboard), + tint = MaterialTheme.colorScheme.onSurface, + ) + } + IconButton( onClick = { showNameDialog = true