From 53ec6c817cb6af4f228bbce1de85785f93858379 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Wed, 15 Mar 2023 14:28:03 -0400 Subject: [PATCH] Fixes the deletion of private messages and messages in tags --- .../com/vitorpamplona/amethyst/model/Channel.kt | 4 ++++ .../com/vitorpamplona/amethyst/model/LocalCache.kt | 13 +++++++++++++ .../java/com/vitorpamplona/amethyst/model/User.kt | 8 ++++++++ 3 files changed, 25 insertions(+) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/Channel.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/Channel.kt index b5f23668e..1a527c1b9 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/Channel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Channel.kt @@ -27,6 +27,10 @@ class Channel(val idHex: String) { notes[note.idHex] = note } + fun removeNote(note: Note) { + notes.remove(note.idHex) + } + fun updateChannelInfo(creator: User, channelInfo: ChannelCreateEvent.ChannelData, updatedAt: Long) { this.creator = creator this.info = channelInfo diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt index e9a30224c..ad07855e5 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt @@ -353,6 +353,19 @@ object LocalCache { masterNote.removeReport(deleteNote) } + val channel = deleteNote.channel() + channel?.removeNote(deleteNote) + + if (deleteNote.event is PrivateDmEvent) { + val author = deleteNote.author + val recipient = (deleteNote.event as? PrivateDmEvent)?.recipientPubKey()?.let { checkGetOrCreateUser(it) } + + if (recipient != null && author != null) { + author.removeMessage(recipient, deleteNote) + recipient.removeMessage(author, deleteNote) + } + } + notes.remove(deleteNote.idHex) deletedAtLeastOne = true diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/User.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/User.kt index 8decbce44..2d60ed4b5 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/User.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/User.kt @@ -197,6 +197,14 @@ class User(val pubkeyHex: String) { } } + fun removeMessage(user: User, msg: Note) { + val privateChatroom = getOrCreatePrivateChatroom(user) + if (msg in privateChatroom.roomMessages) { + privateChatroom.roomMessages = privateChatroom.roomMessages - msg + liveSet?.messages?.invalidateData() + } + } + fun addRelayBeingUsed(relay: Relay, eventTime: Long) { val here = relaysBeingUsed[relay.url] if (here == null) {