import net.pterodactylus.sone.data.PostReply;
import net.pterodactylus.sone.data.Profile;
import net.pterodactylus.sone.data.Profile.Field;
-import net.pterodactylus.sone.data.Reply;
+import net.pterodactylus.sone.data.Reply.Modifier.ReplyUpdated;
import net.pterodactylus.sone.data.Sone;
import net.pterodactylus.sone.data.Sone.ShowCustomAvatars;
import net.pterodactylus.sone.data.Sone.SoneStatus;
}
for (PostReply reply : followedSone.get().getReplies()) {
if (reply.getTime() < now) {
- markReplyKnown(reply);
+ reply.modify().setKnown().update(Optional.<ReplyUpdated<PostReply>>absent());
}
}
}
continue;
}
if (reply.getTime() < getSoneFollowingTime(sone)) {
- reply.modify().setKnown().update();
+ reply.modify().setKnown().update(Optional.<ReplyUpdated<PostReply>>absent());
} else if (!reply.isKnown()) {
eventBus.post(new NewPostReplyFoundEvent(reply));
}
}
database.storePostReplies(sone, replies);
for (PostReply reply : replies) {
- reply.modify().setKnown().update();
+ reply.modify().setKnown().update(Optional.<ReplyUpdated<PostReply>>absent());
}
logger.info(String.format("Sone loaded successfully: %s", sone));
eventBus.post(new MarkPostKnownEvent(post));
touchConfiguration();
for (PostReply reply : post.getReplies()) {
- markReplyKnown(reply);
+ reply.modify().setKnown().update(postReplyUpdated());
}
}
logger.log(Level.FINE, String.format("Tried to delete non-local reply: %s", reply));
return;
}
+ postReplyUpdated().get().replyUpdated(reply);
database.removePostReply(reply);
- markReplyKnown(reply);
- sone.removeReply(reply);
touchConfiguration();
}
/**
- * Marks the given reply as known, if it is currently not a known reply
- * (according to {@link Reply#isKnown()}).
- *
- * @param reply
- * The reply to mark as known
- */
- public void markReplyKnown(PostReply reply) {
- boolean previouslyKnown = reply.isKnown();
- reply.modify().setKnown().update();
- eventBus.post(new MarkPostReplyKnownEvent(reply));
- if (!previouslyKnown) {
- touchConfiguration();
- }
- }
-
- /**
* Creates a new image.
*
* @param sone
*/
@Override
public void run() {
- markReplyKnown(postReply);
+ postReplyUpdated().get().replyUpdated(postReply);
}
}, 10, TimeUnit.SECONDS);
}
});
}
+ public Optional<ReplyUpdated<PostReply>> postReplyUpdated() {
+ return Optional.<ReplyUpdated<PostReply>>of(new ReplyUpdated<PostReply>() {
+ @Override
+ public void replyUpdated(PostReply reply) {
+ eventBus.post(new MarkPostReplyKnownEvent(reply));
+ }
+ });
+ }
+
public Optional<ImageCreated> imageCreated() {
return Optional.<ImageCreated>of(new ImageCreated() {
@Override