X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FCore.java;h=9354063ad50ec9bd76b40bae059b5a110e940770;hb=860029508a9860de1c7a0c0b2fdcbe5b642a5f16;hp=c4cc9cfc6e207b3c5715922b728c42e31d3c83be;hpb=c00c2dea5bbe698a46c443d3610855720baa69a4;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/core/Core.java b/src/main/java/net/pterodactylus/sone/core/Core.java index c4cc9cf..9354063 100644 --- a/src/main/java/net/pterodactylus/sone/core/Core.java +++ b/src/main/java/net/pterodactylus/sone/core/Core.java @@ -797,9 +797,9 @@ public class Core extends AbstractService implements SoneProvider, PostProvider, } for (PostReply postReply : soneComparison.getNewPostReplies()) { if (postReply.getSone().equals(newSone)) { - postReply.setKnown(true); + database.setPostReplyKnown(postReply); } else if (postReply.getTime() < database.getFollowingTime(newSone.getId())) { - postReply.setKnown(true); + database.setPostReplyKnown(postReply); } else if (!postReply.isKnown()) { events.add(new NewPostReplyFoundEvent(postReply)); } @@ -976,7 +976,7 @@ public class Core extends AbstractService implements SoneProvider, PostProvider, post.setKnown(true); } for (PostReply reply : replies) { - reply.setKnown(true); + database.setPostReplyKnown(reply); } logger.info(String.format("Sone loaded successfully: %s", sone)); @@ -1118,7 +1118,7 @@ public class Core extends AbstractService implements SoneProvider, PostProvider, */ public void markReplyKnown(PostReply reply) { boolean previouslyKnown = reply.isKnown(); - reply.setKnown(true); + database.setPostReplyKnown(reply); eventBus.post(new MarkPostReplyKnownEvent(reply)); if (!previouslyKnown) { touchConfiguration(); @@ -1581,13 +1581,8 @@ public class Core extends AbstractService implements SoneProvider, PostProvider, OwnIdentity ownIdentity = identityRemovedEvent.getOwnIdentity(); Identity identity = identityRemovedEvent.getIdentity(); trustedIdentities.remove(ownIdentity, identity); - for (Entry> trustedIdentity : trustedIdentities.asMap().entrySet()) { - if (trustedIdentity.getKey().equals(ownIdentity)) { - continue; - } - if (trustedIdentity.getValue().contains(identity)) { - return; - } + if (otherOwnIdentityStillKnowsIdentity(ownIdentity, identity)) { + return; } Sone sone = getSone(identity.getId()); if (sone == null) { @@ -1604,6 +1599,10 @@ public class Core extends AbstractService implements SoneProvider, PostProvider, database.removeSone(sone); } + private boolean otherOwnIdentityStillKnowsIdentity(OwnIdentity ownIdentity, Identity identity) { + return trustedIdentities.entries().stream().anyMatch(e -> !e.getKey().equals(ownIdentity) && e.getValue().equals(identity)); + } + /** * Deletes the temporary image. *