feat(note): copy raw JSON action in dropdown menu
This commit is contained in:
@@ -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.screen.loggedIn.report.ReportNoteDialog
|
||||||
import com.vitorpamplona.amethyst.ui.stringRes
|
import com.vitorpamplona.amethyst.ui.stringRes
|
||||||
import com.vitorpamplona.amethyst.ui.theme.Size24Modifier
|
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.nip01Core.tags.aTag.isTaggedAddressableNote
|
||||||
import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent
|
import com.vitorpamplona.quartz.nip10Notes.TextNoteEvent
|
||||||
import com.vitorpamplona.quartz.nip23LongContent.LongTextNoteEvent
|
import com.vitorpamplona.quartz.nip23LongContent.LongTextNoteEvent
|
||||||
@@ -63,6 +64,7 @@ import kotlinx.coroutines.flow.combine
|
|||||||
import kotlinx.coroutines.flow.flowOn
|
import kotlinx.coroutines.flow.flowOn
|
||||||
import kotlinx.coroutines.flow.onStart
|
import kotlinx.coroutines.flow.onStart
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
import kotlinx.coroutines.withContext
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun MoreOptionsButton(
|
fun MoreOptionsButton(
|
||||||
@@ -204,6 +206,18 @@ fun NoteDropDownMenu(
|
|||||||
onDismiss()
|
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)) {
|
M3ActionRow(icon = MaterialSymbols.Share, text = stringRes(R.string.quick_action_share)) {
|
||||||
val sendIntent =
|
val sendIntent =
|
||||||
Intent().apply {
|
Intent().apply {
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
<string name="copy_text">Copy Text</string>
|
<string name="copy_text">Copy Text</string>
|
||||||
<string name="copy_user_pubkey">Copy Author ID</string>
|
<string name="copy_user_pubkey">Copy Author ID</string>
|
||||||
<string name="copy_note_id">Copy Note 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="broadcast">Broadcast</string>
|
||||||
<string name="timestamp_it">Timestamp it</string>
|
<string name="timestamp_it">Timestamp it</string>
|
||||||
<string name="timestamp_pending">Timestamp: Pending Confirmations</string>
|
<string name="timestamp_pending">Timestamp: Pending Confirmations</string>
|
||||||
|
|||||||
Reference in New Issue
Block a user