From 58cf0d9f5d66a0f774e9ef941989e422b38a9189 Mon Sep 17 00:00:00 2001 From: greenart7c3 Date: Wed, 13 Sep 2023 10:08:43 -0300 Subject: [PATCH] fix freeze when going to dms screen --- .../java/com/vitorpamplona/amethyst/model/Account.kt | 3 ++- .../com/vitorpamplona/amethyst/service/AmberUtils.kt | 10 ++++++++++ .../com/vitorpamplona/amethyst/ui/note/NoteCompose.kt | 3 ++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt index 83723718f..63fbcb48d 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt @@ -2570,7 +2570,8 @@ class Account( return when (event) { is PrivateDmEvent -> { if (AmberUtils.cachedDecryptedContent[event.id] == null) { - AmberUtils.decrypt( + AmberUtils.content = "" + AmberUtils.decryptDM( event.content, event.talkingWith(userProfile().pubkeyHex), event.id diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/AmberUtils.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/AmberUtils.kt index aa9d2d42f..175919044 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/AmberUtils.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/AmberUtils.kt @@ -96,6 +96,16 @@ object AmberUtils { } } + fun decryptDM(encryptedContent: String, pubKey: HexKey, id: String, signerType: SignerType = SignerType.NIP04_DECRYPT) { + openAmber( + encryptedContent, + signerType, + IntentUtils.activityResultLauncher, + pubKey, + id + ) + } + fun decryptBookmark(encryptedContent: String, pubKey: HexKey, id: String, signerType: SignerType = SignerType.NIP04_DECRYPT) { openAmber( encryptedContent, diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt index 5d535c97c..4f59a3ea2 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt @@ -1262,7 +1262,8 @@ fun RenderTextEvent( ) { val eventContent = remember(note.event) { val subject = (note.event as? TextNoteEvent)?.subject()?.ifEmpty { null } - val body = accountViewModel.decrypt(note) + val decryptedContent = if (note.event == null) null else AmberUtils.cachedDecryptedContent[note.event!!.id()] + val body = decryptedContent ?: accountViewModel.decrypt(note) if (!subject.isNullOrBlank() && body?.split("\n")?.get(0)?.contains(subject) == false) { "## $subject\n$body"