From d252297ba4b7d6dc27f5b9edde7e85dbf289ee78 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Mon, 6 Feb 2023 18:15:18 -0500 Subject: [PATCH] List relays in Private DMs --- .../com/vitorpamplona/amethyst/model/Account.kt | 2 +- .../com/vitorpamplona/amethyst/model/LocalCache.kt | 14 ++++++++++---- .../amethyst/service/NostrDataSource.kt | 2 +- 3 files changed, 12 insertions(+), 6 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 e94401fb6..675a1bb26 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/Account.kt @@ -242,7 +242,7 @@ class Account( advertiseNip18 = false ) Client.send(signedEvent) - LocalCache.consume(signedEvent) + LocalCache.consume(signedEvent, null) } fun sendCreateNewChannel(name: String, about: String, picture: String) { 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 a56d43723..a08193a4d 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt @@ -175,13 +175,18 @@ object LocalCache { } } - fun consume(event: PrivateDmEvent) { + fun consume(event: PrivateDmEvent, relay: Relay?) { val note = getOrCreateNote(event.id.toHex()) + val author = getOrCreateUser(event.pubKey.toHexKey()) + + if (relay != null) { + author.addRelay(relay, event.createdAt) + note.addRelay(relay) + } // Already processed this event. if (note.event != null) return - val author = getOrCreateUser(event.pubKey.toHexKey()) val recipient = event.recipientPubKey?.let { getOrCreateUser(it.toHexKey()) } //Log.d("PM", "${author.toBestDisplayName()} to ${recipient?.toBestDisplayName()}") @@ -356,15 +361,16 @@ object LocalCache { val note = getOrCreateNote(event.id.toHex()) channel.addNote(note) + val author = getOrCreateUser(event.pubKey.toHexKey()) + if (relay != null) { - note.author?.addRelay(relay, event.createdAt) + author.addRelay(relay, event.createdAt) note.addRelay(relay) } // Already processed this event. if (note.event != null) return - val author = getOrCreateUser(event.pubKey.toHexKey()) val mentions = event.mentions.map { getOrCreateUser(it) } val replyTo = event.replyTos .map { getOrCreateNote(it) } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrDataSource.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrDataSource.kt index 50dde8f72..bdbc47909 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/NostrDataSource.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/NostrDataSource.kt @@ -56,7 +56,7 @@ abstract class NostrDataSource(val debugName: String) { is TextNoteEvent -> LocalCache.consume(event, relay) is RecommendRelayEvent -> LocalCache.consume(event) is ContactListEvent -> LocalCache.consume(event) - is PrivateDmEvent -> LocalCache.consume(event) + is PrivateDmEvent -> LocalCache.consume(event, relay) is DeletionEvent -> LocalCache.consume(event) else -> when (event.kind) { RepostEvent.kind -> {