mirror of
https://github.com/greenart7c3/Amber.git
synced 2026-10-06 03:18:23 +00:00
read the content of a rumor event
This commit is contained in:
@@ -10,6 +10,6 @@ class ClearTextEncryptedDataKind(val text: String, override val result: String)
|
||||
|
||||
class TagArrayEncryptedDataKind(val tagArray: Array<Array<String>>, override val result: String) : EncryptedDataKind
|
||||
|
||||
class EventEncryptedDataKind(val event: AmberEvent, override val result: String) : EncryptedDataKind
|
||||
class EventEncryptedDataKind(val event: AmberEvent, val sealEncryptedDataKind: EncryptedDataKind?, override val result: String) : EncryptedDataKind
|
||||
|
||||
class PrivateZapEncryptedDataKind(override val result: String) : EncryptedDataKind
|
||||
|
||||
@@ -6,6 +6,7 @@ import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.net.Uri
|
||||
import android.provider.Browser
|
||||
import android.util.Log
|
||||
import android.widget.Toast
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.ui.platform.ClipEntry
|
||||
@@ -42,6 +43,7 @@ import com.vitorpamplona.quartz.nip01Core.core.Event
|
||||
import com.vitorpamplona.quartz.nip01Core.crypto.EventHasher
|
||||
import com.vitorpamplona.quartz.nip01Core.jackson.JacksonMapper
|
||||
import com.vitorpamplona.quartz.nip19Bech32.toNpub
|
||||
import com.vitorpamplona.quartz.nip59Giftwrap.seals.SealedRumorEvent
|
||||
import com.vitorpamplona.quartz.utils.Hex
|
||||
import com.vitorpamplona.quartz.utils.TimeUtils
|
||||
import java.io.ByteArrayOutputStream
|
||||
@@ -199,8 +201,26 @@ object IntentUtils {
|
||||
else -> {
|
||||
if (type.name.contains("ENCRYPT")) {
|
||||
if (localData.startsWith("{")) {
|
||||
val event = AmberEvent.fromJson(localData)
|
||||
EventEncryptedDataKind(event, result)
|
||||
try {
|
||||
val event = AmberEvent.fromJson(localData)
|
||||
if (event.kind == SealedRumorEvent.KIND) {
|
||||
val decryptedSealData = account.signer.signerSync.decrypt(event.content, account.hexKey)
|
||||
if (decryptedSealData.startsWith("{")) {
|
||||
val sealEvent = AmberEvent.fromJson(decryptedSealData)
|
||||
EventEncryptedDataKind(event, EventEncryptedDataKind(sealEvent, null, decryptedSealData), result)
|
||||
} else if (decryptedSealData.startsWith("[")) {
|
||||
val tagArray = JacksonMapper.fromJsonToTagArray(decryptedSealData)
|
||||
EventEncryptedDataKind(event, TagArrayEncryptedDataKind(tagArray, decryptedSealData), decryptedSealData)
|
||||
} else {
|
||||
EventEncryptedDataKind(event, ClearTextEncryptedDataKind(event.content, decryptedSealData), result)
|
||||
}
|
||||
} else {
|
||||
EventEncryptedDataKind(event, null, result)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Log.e("IntentUtils", "Error parsing JSON: ${e.message}")
|
||||
ClearTextEncryptedDataKind(localData, result)
|
||||
}
|
||||
} else if (localData.startsWith("[")) {
|
||||
val tagArray = JacksonMapper.fromJsonToTagArray(localData)
|
||||
TagArrayEncryptedDataKind(tagArray, result)
|
||||
@@ -210,7 +230,20 @@ object IntentUtils {
|
||||
} else {
|
||||
if (result.startsWith("{")) {
|
||||
val event = AmberEvent.fromJson(result)
|
||||
EventEncryptedDataKind(event, result)
|
||||
if (event.kind == SealedRumorEvent.KIND) {
|
||||
val decryptedSealData = account.signer.signerSync.decrypt(event.content, account.hexKey)
|
||||
if (decryptedSealData.startsWith("{")) {
|
||||
val sealEvent = AmberEvent.fromJson(decryptedSealData)
|
||||
EventEncryptedDataKind(event, EventEncryptedDataKind(sealEvent, null, decryptedSealData), result)
|
||||
} else if (decryptedSealData.startsWith("[")) {
|
||||
val tagArray = JacksonMapper.fromJsonToTagArray(decryptedSealData)
|
||||
EventEncryptedDataKind(event, TagArrayEncryptedDataKind(tagArray, decryptedSealData), decryptedSealData)
|
||||
} else {
|
||||
EventEncryptedDataKind(event, ClearTextEncryptedDataKind(event.content, decryptedSealData), result)
|
||||
}
|
||||
} else {
|
||||
EventEncryptedDataKind(event, null, result)
|
||||
}
|
||||
} else if (result.startsWith("[")) {
|
||||
val tagArray = JacksonMapper.fromJsonToTagArray(result)
|
||||
TagArrayEncryptedDataKind(tagArray, result)
|
||||
@@ -416,8 +449,26 @@ object IntentUtils {
|
||||
else -> {
|
||||
if (type.name.contains("ENCRYPT")) {
|
||||
if (data.startsWith("{")) {
|
||||
val event = AmberEvent.fromJson(data)
|
||||
EventEncryptedDataKind(event, result)
|
||||
try {
|
||||
val event = AmberEvent.fromJson(data)
|
||||
if (event.kind == SealedRumorEvent.KIND) {
|
||||
val decryptedSealData = account.signer.signerSync.decrypt(event.content, account.hexKey)
|
||||
if (decryptedSealData.startsWith("{")) {
|
||||
val sealEvent = AmberEvent.fromJson(decryptedSealData)
|
||||
EventEncryptedDataKind(event, EventEncryptedDataKind(sealEvent, null, decryptedSealData), result)
|
||||
} else if (decryptedSealData.startsWith("[")) {
|
||||
val tagArray = JacksonMapper.fromJsonToTagArray(decryptedSealData)
|
||||
EventEncryptedDataKind(event, TagArrayEncryptedDataKind(tagArray, decryptedSealData), decryptedSealData)
|
||||
} else {
|
||||
EventEncryptedDataKind(event, ClearTextEncryptedDataKind(event.content, decryptedSealData), result)
|
||||
}
|
||||
} else {
|
||||
EventEncryptedDataKind(event, null, result)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Log.e("IntentUtils", "Error parsing JSON: ${e.message}")
|
||||
ClearTextEncryptedDataKind(data, result)
|
||||
}
|
||||
} else if (data.startsWith("[")) {
|
||||
val tagArray = JacksonMapper.fromJsonToTagArray(data)
|
||||
TagArrayEncryptedDataKind(tagArray, result)
|
||||
@@ -427,7 +478,20 @@ object IntentUtils {
|
||||
} else {
|
||||
if (result.startsWith("{")) {
|
||||
val event = AmberEvent.fromJson(result)
|
||||
EventEncryptedDataKind(event, result)
|
||||
if (event.kind == SealedRumorEvent.KIND) {
|
||||
val decryptedSealData = account.signer.signerSync.decrypt(event.content, account.hexKey)
|
||||
if (decryptedSealData.startsWith("{")) {
|
||||
val sealEvent = AmberEvent.fromJson(decryptedSealData)
|
||||
EventEncryptedDataKind(event, EventEncryptedDataKind(sealEvent, null, decryptedSealData), result)
|
||||
} else if (decryptedSealData.startsWith("[")) {
|
||||
val tagArray = JacksonMapper.fromJsonToTagArray(decryptedSealData)
|
||||
EventEncryptedDataKind(event, TagArrayEncryptedDataKind(tagArray, decryptedSealData), decryptedSealData)
|
||||
} else {
|
||||
EventEncryptedDataKind(event, ClearTextEncryptedDataKind(event.content, decryptedSealData), result)
|
||||
}
|
||||
} else {
|
||||
EventEncryptedDataKind(event, null, result)
|
||||
}
|
||||
} else if (result.startsWith("[")) {
|
||||
val tagArray = JacksonMapper.fromJsonToTagArray(result)
|
||||
TagArrayEncryptedDataKind(tagArray, result)
|
||||
|
||||
@@ -124,7 +124,21 @@ fun SeeDetailsScreen(
|
||||
val event = intent.event!!
|
||||
if (event.kind == 22242) AmberEvent.relay(event) else event.content
|
||||
} else {
|
||||
if (type.name.contains("ENCRYPT") && intent.encryptedData is ClearTextEncryptedDataKind) intent.encryptedData.text else if (intent.encryptedData is EventEncryptedDataKind) intent.encryptedData.event.content else intent.encryptedData?.result ?: ""
|
||||
if (type.name.contains("ENCRYPT") && intent.encryptedData is ClearTextEncryptedDataKind) {
|
||||
intent.encryptedData.text
|
||||
} else if (intent.encryptedData is EventEncryptedDataKind) {
|
||||
if (intent.encryptedData.sealEncryptedDataKind != null) {
|
||||
if (intent.encryptedData.sealEncryptedDataKind is EventEncryptedDataKind) {
|
||||
intent.encryptedData.sealEncryptedDataKind.event.content
|
||||
} else {
|
||||
intent.encryptedData.sealEncryptedDataKind.result
|
||||
}
|
||||
} else {
|
||||
intent.encryptedData.event.content
|
||||
}
|
||||
} else {
|
||||
intent.encryptedData?.result ?: ""
|
||||
}
|
||||
}
|
||||
|
||||
Text(
|
||||
|
||||
@@ -127,19 +127,38 @@ fun EncryptDecryptData(
|
||||
)
|
||||
|
||||
if (encryptedData is EventEncryptedDataKind) {
|
||||
val content = if (encryptedData.event.kind == 22242) encryptedData.event.relay() else encryptedData.event.content
|
||||
if (encryptedData.event.kind == ContactListEvent.KIND) {
|
||||
ContactListDetail(
|
||||
title = stringResource(R.string.following),
|
||||
text = "${encryptedData.event.verifiedFollowKeySet().size}",
|
||||
)
|
||||
if (encryptedData.sealEncryptedDataKind != null) {
|
||||
if (encryptedData.sealEncryptedDataKind is EventEncryptedDataKind) {
|
||||
val content = if (encryptedData.sealEncryptedDataKind.event.kind == 22242) encryptedData.sealEncryptedDataKind.event.relay() else encryptedData.sealEncryptedDataKind.event.content
|
||||
if (encryptedData.event.kind == ContactListEvent.KIND) {
|
||||
ContactListDetail(
|
||||
title = stringResource(R.string.following),
|
||||
text = "${encryptedData.event.verifiedFollowKeySet().size}",
|
||||
)
|
||||
} else {
|
||||
Text(
|
||||
content,
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(top = 8.dp),
|
||||
)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Text(
|
||||
content,
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(top = 8.dp),
|
||||
)
|
||||
val content = if (encryptedData.event.kind == 22242) encryptedData.event.relay() else encryptedData.event.content
|
||||
if (encryptedData.event.kind == ContactListEvent.KIND) {
|
||||
ContactListDetail(
|
||||
title = stringResource(R.string.following),
|
||||
text = "${encryptedData.event.verifiedFollowKeySet().size}",
|
||||
)
|
||||
} else {
|
||||
Text(
|
||||
content,
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(top = 8.dp),
|
||||
)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
val content = if (type.name.contains("ENCRYPT") && encryptedData is ClearTextEncryptedDataKind) encryptedData.text else encryptedData?.result ?: ""
|
||||
|
||||
Reference in New Issue
Block a user