diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt index 84dae9417..67e3fc4e3 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt @@ -1375,7 +1375,7 @@ object LocalCache : ILocalCache { repliesTo.forEach { it.addBoost(note) } event.containedPost()?.let { - justConsumeAndUpdateIndexes(it, relay, false) + checkDeletionAndConsume(it, relay, false) } refreshNewNoteObservers(note) @@ -1405,7 +1405,7 @@ object LocalCache : ILocalCache { repliesTo.forEach { it.addBoost(note) } event.containedPost()?.let { - justConsumeAndUpdateIndexes(it, relay, false) + checkDeletionAndConsume(it, relay, false) } refreshNewNoteObservers(note) @@ -1440,7 +1440,7 @@ object LocalCache : ILocalCache { repliesTo.forEach { it.addBoost(note) } event.containedPost()?.let { - justConsumeAndUpdateIndexes(it, relay, false) + checkDeletionAndConsume(it, relay, false) } refreshNewNoteObservers(note) @@ -1683,7 +1683,7 @@ object LocalCache : ILocalCache { if (existingZapRequest == null || existingZapRequest.event == null) { // tries to add it event.zapRequest?.let { - justConsumeAndUpdateIndexes(it, relay, false) + checkDeletionAndConsume(it, relay, false) } } @@ -2634,6 +2634,17 @@ object LocalCache : ILocalCache { return justConsumeAndUpdateIndexes(event, relay?.url, wasVerified) } + private fun checkDeletionAndConsume( + event: Event, + relay: NormalizedRelayUrl?, + wasVerified: Boolean, + ): Boolean = + if (!deletionIndex.hasBeenDeleted(event)) { + justConsumeAndUpdateIndexes(event, relay, wasVerified) + } else { + false + } + private fun justConsumeAndUpdateIndexes( event: Event, relay: NormalizedRelayUrl?,