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=e186e6fd24dc983ae914c9a1acea5ab6e2914d11;hpb=5473139d890c40c85712f59ba534583961c2772e;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 e186e6f..9354063 100644 --- a/src/main/java/net/pterodactylus/sone/core/Core.java +++ b/src/main/java/net/pterodactylus/sone/core/Core.java @@ -24,7 +24,7 @@ import static com.google.common.primitives.Longs.tryParse; import static java.lang.String.format; import static java.util.logging.Level.WARNING; import static java.util.logging.Logger.getLogger; -import static net.pterodactylus.sone.data.AlbumsKt.getAllImages; +import static net.pterodactylus.sone.data.AlbumKt.getAllImages; import java.util.ArrayList; import java.util.Collection; @@ -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. *