From c079620bb44353f9c06719b93778b8d1d95d492f Mon Sep 17 00:00:00 2001 From: greenart7c3 Date: Mon, 8 Jan 2024 08:43:38 -0300 Subject: [PATCH] add decrypt content button to the details screen --- .../ui/components/EncryptDecryptData.kt | 4 ++- .../nostrsigner/ui/components/EventData.kt | 4 ++- .../nostrsigner/ui/components/RawJson.kt | 29 ++++++++++++++++++- .../ui/components/SingleEventHomeScreen.kt | 1 + .../ui/previews/EventDataPreview.kt | 2 ++ app/src/main/res/values/strings.xml | 1 + 6 files changed, 38 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/EncryptDecryptData.kt b/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/EncryptDecryptData.kt index 29744332..502ace91 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/EncryptDecryptData.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/EncryptDecryptData.kt @@ -104,7 +104,9 @@ fun EncryptDecryptData( RawJson( content, Modifier.weight(1f), - stringResource(R.string.encrypted_decrypted_data) + stringResource(R.string.encrypted_decrypted_data), + type, + onCopy ) { clipboardManager.setText(AnnotatedString(onCopy())) diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/EventData.kt b/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/EventData.kt index c859eb7d..abe28725 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/EventData.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/EventData.kt @@ -23,6 +23,7 @@ import androidx.compose.ui.text.withStyle import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import com.greenart7c3.nostrsigner.R +import com.greenart7c3.nostrsigner.models.SignerType import com.greenart7c3.nostrsigner.service.model.AmberEvent import com.vitorpamplona.quartz.events.Event @@ -35,6 +36,7 @@ fun EventData( applicationName: String?, event: Event, rawJson: String, + type: SignerType, onAccept: () -> Unit, onReject: () -> Unit ) { @@ -85,7 +87,7 @@ fun EventData( if (!showMore) stringResource(R.string.show_details) else stringResource(R.string.hide_details) ) if (showMore) { - RawJson(rawJson, Modifier.weight(1f)) + RawJson(rawJson, Modifier.weight(1f), type = type) } else { Spacer(modifier = Modifier.weight(1f)) } diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/RawJson.kt b/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/RawJson.kt index 86086331..cd4ffa36 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/RawJson.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/RawJson.kt @@ -8,7 +8,11 @@ import androidx.compose.material3.Button import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Text import androidx.compose.runtime.Composable +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.Modifier import androidx.compose.ui.platform.LocalClipboardManager import androidx.compose.ui.platform.LocalContext @@ -16,6 +20,7 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.AnnotatedString import androidx.compose.ui.text.input.TextFieldValue import com.greenart7c3.nostrsigner.R +import com.greenart7c3.nostrsigner.models.SignerType import com.greenart7c3.nostrsigner.ui.theme.ButtonBorder import kotlinx.coroutines.launch @@ -24,19 +29,41 @@ fun RawJson( rawJson: String, modifier: Modifier, label: String = stringResource(R.string.copy_raw_json), + type: SignerType, + onDecrypt: (() -> String)? = null, onCopy: (() -> Unit)? = null ) { val coroutineScope = rememberCoroutineScope() val context = LocalContext.current val clipboardManager = LocalClipboardManager.current + var currentContent by remember { + mutableStateOf(rawJson) + } OutlinedTextField( modifier = modifier .fillMaxWidth(), - value = TextFieldValue(rawJson), + value = TextFieldValue(currentContent), onValueChange = { }, readOnly = true ) + if (type == SignerType.NIP04_DECRYPT || type == SignerType.NIP44_DECRYPT) { + Row( + Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.Center + ) { + Button( + shape = ButtonBorder, + onClick = { + if (onDecrypt != null) { + currentContent = onDecrypt() + } + } + ) { + Text(stringResource(R.string.decrypt_content)) + } + } + } Row( Modifier.fillMaxWidth(), horizontalArrangement = Arrangement.Center diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/SingleEventHomeScreen.kt b/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/SingleEventHomeScreen.kt index 7ebc6290..188bcdca 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/SingleEventHomeScreen.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/ui/components/SingleEventHomeScreen.kt @@ -197,6 +197,7 @@ fun SingleEventHomeScreen( applicationName, event, intentData.data, + intentData.type, { if (event.pubKey != account.keyPair.pubKey.toHexKey()) { coroutineScope.launch { diff --git a/app/src/main/java/com/greenart7c3/nostrsigner/ui/previews/EventDataPreview.kt b/app/src/main/java/com/greenart7c3/nostrsigner/ui/previews/EventDataPreview.kt index 680b4772..aeff0661 100644 --- a/app/src/main/java/com/greenart7c3/nostrsigner/ui/previews/EventDataPreview.kt +++ b/app/src/main/java/com/greenart7c3/nostrsigner/ui/previews/EventDataPreview.kt @@ -9,6 +9,7 @@ import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview +import com.greenart7c3.nostrsigner.models.SignerType import com.greenart7c3.nostrsigner.models.TimeUtils import com.greenart7c3.nostrsigner.ui.components.EventData import com.greenart7c3.nostrsigner.ui.theme.NostrSignerTheme @@ -35,6 +36,7 @@ fun EventDataPreview() { null, event, data, + SignerType.SIGN_EVENT, { }, { } ) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5a3faac4..a2022368 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -66,4 +66,5 @@ go to top Event copied to the clipboard Select/Deselect all + Decrypt content \ No newline at end of file