feat(note): copy raw JSON action in dropdown menu

This commit is contained in:
davotoula
2026-05-09 13:21:45 +02:00
parent 2479fef181
commit b9a1165551
2 changed files with 15 additions and 0 deletions
@@ -53,6 +53,7 @@ import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
import com.vitorpamplona.amethyst.ui.screen.loggedIn.report.ReportNoteDialog
import com.vitorpamplona.amethyst.ui.stringRes
import com.vitorpamplona.amethyst.ui.theme.Size24Modifier
import com.vitorpamplona.quartz.nip01Core.jackson.JacksonMapper
import com.vitorpamplona.quartz.nip01Core.tags.aTag.isTaggedAddressableNote
import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent
import com.vitorpamplona.quartz.nip23LongContent.LongTextNoteEvent
@@ -63,6 +64,7 @@ import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.flow.flowOn
import kotlinx.coroutines.flow.onStart
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
@Composable
fun MoreOptionsButton(
@@ -204,6 +206,18 @@ fun NoteDropDownMenu(
onDismiss()
}
}
M3ActionRow(icon = MaterialSymbols.ContentCopy, text = stringRes(R.string.copy_raw_json)) {
val event = note.event
if (event != null) {
scope.launch {
val json = withContext(Dispatchers.Default) { JacksonMapper.toJsonPretty(event) }
clipboardManager.setText(json)
onDismiss()
}
} else {
onDismiss()
}
}
M3ActionRow(icon = MaterialSymbols.Share, text = stringRes(R.string.quick_action_share)) {
val sendIntent =
Intent().apply {
+1
View File
@@ -32,6 +32,7 @@
<string name="copy_text">Copy Text</string>
<string name="copy_user_pubkey">Copy Author ID</string>
<string name="copy_note_id">Copy Note ID</string>
<string name="copy_raw_json">Copy raw JSON</string>
<string name="broadcast">Broadcast</string>
<string name="timestamp_it">Timestamp it</string>
<string name="timestamp_pending">Timestamp: Pending Confirmations</string>