Remove randomId() and currentTime() methods from ReplyBuilder.
[Sone.git] / src / main / java / net / pterodactylus / sone / core / Core.java
index 898e314..e550652 100644 (file)
@@ -70,6 +70,7 @@ import net.pterodactylus.sone.data.TemporaryImage;
 import net.pterodactylus.sone.database.Database;
 import net.pterodactylus.sone.database.DatabaseException;
 import net.pterodactylus.sone.database.PostBuilder;
+import net.pterodactylus.sone.database.PostBuilder.PostCreated;
 import net.pterodactylus.sone.database.PostProvider;
 import net.pterodactylus.sone.database.PostReplyBuilder;
 import net.pterodactylus.sone.database.PostReplyProvider;
@@ -1068,7 +1069,7 @@ public class Core extends AbstractService implements SoneProvider, PostProvider,
                        if ((postRecipientId != null) && (postRecipientId.length() == 43)) {
                                postBuilder.to(of(postRecipientId));
                        }
-                       posts.add(postBuilder.build());
+                       posts.add(postBuilder.build(Optional.<PostCreated>absent()));
                }
 
                /* load replies. */
@@ -1315,7 +1316,7 @@ public class Core extends AbstractService implements SoneProvider, PostProvider,
                        return null;
                }
                PostReplyBuilder postReplyBuilder = postReplyBuilder();
-               postReplyBuilder.randomId().from(sone.getId()).to(post.getId()).currentTime().withText(text.trim());
+               postReplyBuilder.from(sone.getId()).to(post.getId()).withText(text.trim());
                final PostReply reply = postReplyBuilder.build();
                database.storePostReply(reply);
                eventBus.post(new NewPostReplyFoundEvent(reply));
@@ -1385,7 +1386,7 @@ public class Core extends AbstractService implements SoneProvider, PostProvider,
                checkNotNull(temporaryImage, "temporaryImage must not be null");
                checkArgument(sone.isLocal(), "sone must be a local Sone");
                checkArgument(sone.equals(album.getSone()), "album must belong to the given Sone");
-               Image image = album.newImageBuilder().withId(temporaryImage.getId()).createdNow().sized(temporaryImage.getWidth(), temporaryImage.getHeight()).build();
+               Image image = album.newImageBuilder().withId(temporaryImage.getId()).sized(temporaryImage.getWidth(), temporaryImage.getHeight()).build();
                imageInserter.insertImage(temporaryImage, image);
                return image;
        }
@@ -1949,4 +1950,24 @@ public class Core extends AbstractService implements SoneProvider, PostProvider,
                touchConfiguration();
        }
 
+       public PostCreated postCreated() {
+               return new PostCreated() {
+                       @Override
+                       public void postCreated(final Post post) {
+                               if (post.isKnown()) {
+                                       return;
+                               }
+                               eventBus.post(new NewPostFoundEvent(post));
+                               if (post.getSone().isLocal()) {
+                                       localElementTicker.schedule(new Runnable() {
+                                               @Override
+                                               public void run() {
+                                                       markPostKnown(post);
+                                               }
+                                       }, 10, TimeUnit.SECONDS);
+                               }
+                       }
+               };
+       }
+
 }