X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fweb%2FWebInterface.java;h=74f90870954ebe7578bbed2c4b258091f139c542;hb=5bec5f7d5b4fcbf25ff7fcc5636603611a9cc47f;hp=00f8cf9c5fe7a1f1c0d0894e232c54651ebdc7a0;hpb=ef127cf3748476d8dffc518f11bf4860d0b5b03e;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/web/WebInterface.java b/src/main/java/net/pterodactylus/sone/web/WebInterface.java index 00f8cf9..74f9087 100644 --- a/src/main/java/net/pterodactylus/sone/web/WebInterface.java +++ b/src/main/java/net/pterodactylus/sone/web/WebInterface.java @@ -37,6 +37,11 @@ import java.util.logging.Logger; import net.pterodactylus.sone.core.Core; import net.pterodactylus.sone.core.CoreListener; +import net.pterodactylus.sone.core.event.MarkPostKnownEvent; +import net.pterodactylus.sone.core.event.MarkSoneKnownEvent; +import net.pterodactylus.sone.core.event.NewPostFoundEvent; +import net.pterodactylus.sone.core.event.NewPostReplyFoundEvent; +import net.pterodactylus.sone.core.event.NewSoneFoundEvent; import net.pterodactylus.sone.data.Album; import net.pterodactylus.sone.data.Image; import net.pterodactylus.sone.data.Post; @@ -103,8 +108,6 @@ import net.pterodactylus.sone.web.ajax.UntrustAjaxPage; import net.pterodactylus.sone.web.page.FreenetRequest; import net.pterodactylus.sone.web.page.PageToadlet; import net.pterodactylus.sone.web.page.PageToadletFactory; -import net.pterodactylus.util.collection.SetBuilder; -import net.pterodactylus.util.collection.filter.Filters; import net.pterodactylus.util.logging.Logging; import net.pterodactylus.util.notify.Notification; import net.pterodactylus.util.notify.NotificationManager; @@ -131,6 +134,12 @@ import net.pterodactylus.util.version.Version; import net.pterodactylus.util.web.RedirectPage; import net.pterodactylus.util.web.StaticPage; import net.pterodactylus.util.web.TemplatePage; + +import com.google.common.collect.Collections2; +import com.google.common.collect.ImmutableSet; +import com.google.common.eventbus.Subscribe; +import com.google.inject.Inject; + import freenet.clients.http.SessionManager; import freenet.clients.http.SessionManager.Session; import freenet.clients.http.ToadletContainer; @@ -215,6 +224,7 @@ public class WebInterface implements CoreListener { * @param sonePlugin * The Sone plugin */ + @Inject public WebInterface(SonePlugin sonePlugin) { this.sonePlugin = sonePlugin; formPassword = sonePlugin.pluginRespirator().getToadletContainer().getFormPassword(); @@ -372,7 +382,7 @@ public class WebInterface implements CoreListener { * currently logged in */ public Sone getCurrentSone(ToadletContext toadletContext, boolean create) { - Set localSones = getCore().getLocalSones(); + Collection localSones = getCore().getLocalSones(); if (localSones.size() == 1) { return localSones.iterator().next(); } @@ -458,7 +468,7 @@ public class WebInterface implements CoreListener { * @return The new posts */ public Set getNewPosts() { - return new SetBuilder().addAll(newPostNotification.getElements()).addAll(localPostNotification.getElements()).get(); + return ImmutableSet. builder().addAll(newPostNotification.getElements()).addAll(localPostNotification.getElements()).build(); } /** @@ -468,7 +478,7 @@ public class WebInterface implements CoreListener { * @return The new replies */ public Set getNewReplies() { - return new SetBuilder().addAll(newReplyNotification.getElements()).addAll(localReplyNotification.getElements()).get(); + return ImmutableSet. builder().addAll(newReplyNotification.getElements()).addAll(localReplyNotification.getElements()).build(); } /** @@ -725,15 +735,15 @@ public class WebInterface implements CoreListener { } /** - * Returns all {@link Core#isLocalSone(Sone) local Sone}s that are - * referenced by {@link SonePart}s in the given text (after parsing it using + * Returns all {@link Sone#isLocal() local Sone}s that are referenced by + * {@link SonePart}s in the given text (after parsing it using * {@link SoneTextParser}). * * @param text * The text to parse * @return All mentioned local Sones */ - private Set getMentionedSones(String text) { + private Collection getMentionedSones(String text) { /* we need no context to find mentioned Sones. */ Set mentionedSones = new HashSet(); try { @@ -745,7 +755,7 @@ public class WebInterface implements CoreListener { } catch (IOException ioe1) { logger.log(Level.WARNING, String.format("Could not parse post text: %s", text), ioe1); } - return Filters.filteredSet(mentionedSones, Sone.LOCAL_SONE_FILTER); + return Collections2.filter(mentionedSones, Sone.LOCAL_SONE_FILTER); } /** @@ -770,15 +780,15 @@ public class WebInterface implements CoreListener { } // - // CORELISTENER METHODS + // EVENT HANDLERS // /** * {@inheritDoc} */ - @Override - public void newSoneFound(Sone sone) { - newSoneNotification.add(sone); + @Subscribe + public void newSoneFound(NewSoneFoundEvent newSoneFoundEvent) { + newSoneNotification.add(newSoneFoundEvent.sone()); if (!hasFirstStartNotification()) { notificationManager.addNotification(newSoneNotification); } @@ -787,9 +797,10 @@ public class WebInterface implements CoreListener { /** * {@inheritDoc} */ - @Override - public void newPostFound(Post post) { - boolean isLocal = getCore().isLocalSone(post.getSone()); + @Subscribe + public void newPostFound(NewPostFoundEvent newPostFoundEvent) { + Post post = newPostFoundEvent.post(); + boolean isLocal = post.getSone().isLocal(); if (isLocal) { localPostNotification.add(post); } else { @@ -809,9 +820,10 @@ public class WebInterface implements CoreListener { /** * {@inheritDoc} */ - @Override - public void newReplyFound(PostReply reply) { - boolean isLocal = getCore().isLocalSone(reply.getSone()); + @Subscribe + public void newReplyFound(NewPostReplyFoundEvent newPostReplyFoundEvent) { + PostReply reply = newPostReplyFoundEvent.postReply(); + boolean isLocal = reply.getSone().isLocal(); if (isLocal) { localReplyNotification.add(reply); } else { @@ -831,21 +843,25 @@ public class WebInterface implements CoreListener { /** * {@inheritDoc} */ - @Override - public void markSoneKnown(Sone sone) { - newSoneNotification.remove(sone); + @Subscribe + public void markSoneKnown(MarkSoneKnownEvent markSoneKnownEvent) { + newSoneNotification.remove(markSoneKnownEvent.sone()); } /** * {@inheritDoc} */ - @Override - public void markPostKnown(Post post) { - newPostNotification.remove(post); - localPostNotification.remove(post); - mentionNotification.remove(post); + @Subscribe + public void markPostKnown(MarkPostKnownEvent markPostKnownEvent) { + newPostNotification.remove(markPostKnownEvent.post()); + localPostNotification.remove(markPostKnownEvent.post()); + mentionNotification.remove(markPostKnownEvent.post()); } + // + // CORELISTENER METHODS + // + /** * {@inheritDoc} */