Fire events when new posts and replies are found.
[Sone.git] / src / main / java / net / pterodactylus / sone / core / Core.java
index 2894945..67c16a6 100644 (file)
@@ -438,6 +438,9 @@ public class Core implements IdentityListener {
                synchronized (newSones) {
                        boolean isNew = !knownSones.contains(sone.getId()) && newSones.remove(sone.getId());
                        knownSones.add(sone.getId());
+                       if (isNew) {
+                               coreListenerManager.fireMarkSoneKnown(sone);
+                       }
                        return isNew;
                }
        }
@@ -485,6 +488,9 @@ public class Core implements IdentityListener {
                synchronized (newPosts) {
                        boolean isNew = !knownPosts.contains(postId) && newPosts.remove(postId);
                        knownPosts.add(postId);
+                       if (isNew) {
+                               coreListenerManager.fireMarkPostKnown(getPost(postId));
+                       }
                        return isNew;
                }
        }
@@ -540,6 +546,9 @@ public class Core implements IdentityListener {
                synchronized (newReplies) {
                        boolean isNew = !knownReplies.contains(replyId) && newReplies.remove(replyId);
                        knownReplies.add(replyId);
+                       if (isNew) {
+                               coreListenerManager.fireMarkReplyKnown(getReply(replyId));
+                       }
                        return isNew;
                }
        }
@@ -723,8 +732,9 @@ public class Core implements IdentityListener {
                                }
                                synchronized (newPosts) {
                                        for (Post post : sone.getPosts()) {
-                                               if (!storedSone.getPosts().contains(post) && !knownSones.contains(post.getId())) {
+                                               if (!storedSone.getPosts().contains(post) && !knownPosts.contains(post.getId())) {
                                                        newPosts.add(post.getId());
+                                                       coreListenerManager.fireNewPostFound(post);
                                                }
                                                posts.put(post.getId(), post);
                                        }
@@ -736,8 +746,9 @@ public class Core implements IdentityListener {
                                }
                                synchronized (newReplies) {
                                        for (Reply reply : sone.getReplies()) {
-                                               if (!storedSone.getReplies().contains(reply) && !knownSones.contains(reply.getId())) {
+                                               if (!storedSone.getReplies().contains(reply) && !knownReplies.contains(reply.getId())) {
                                                        newReplies.add(reply.getId());
+                                                       coreListenerManager.fireNewReplyFound(reply);
                                                }
                                                replies.put(reply.getId(), reply);
                                        }