X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fnotify%2FListNotificationFilter.java;h=7084e66bf9a051ad4c364cf3302a17f29ee3fab1;hb=244444029d47c3eb11d1dde212757e8332ee5865;hp=77dc2eaf898f1c231363f3e4315d3e763a178472;hpb=64ed0712bbfba30577c8df20bfac6bb25e6606b2;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/notify/ListNotificationFilter.java b/src/main/java/net/pterodactylus/sone/notify/ListNotificationFilter.java index 77dc2ea..7084e66 100644 --- a/src/main/java/net/pterodactylus/sone/notify/ListNotificationFilter.java +++ b/src/main/java/net/pterodactylus/sone/notify/ListNotificationFilter.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import javax.annotation.Nonnull; +import javax.annotation.Nullable; import javax.inject.Inject; import javax.inject.Singleton; @@ -80,7 +81,7 @@ public class ListNotificationFilter { if (!currentSone.getOptions().isShowNewPostNotifications()) { continue; } - Optional> filteredNotification = filterNewPostNotification((ListNotification) notification, currentSone); + Optional> filteredNotification = filterPostNotification((ListNotification) notification, currentSone); if (filteredNotification.isPresent()) { filteredNotifications.add(filteredNotification.get()); } @@ -97,7 +98,7 @@ public class ListNotificationFilter { filteredNotifications.add(filteredNotification.get()); } } else if (notification.getId().equals("mention-notification")) { - Optional> filteredNotification = filterNewPostNotification((ListNotification) notification, null); + Optional> filteredNotification = filterPostNotification((ListNotification) notification, null); if (filteredNotification.isPresent()) { filteredNotifications.add(filteredNotification.get()); } @@ -109,32 +110,27 @@ public class ListNotificationFilter { } /** - * Filters the new posts of the given notification. If {@code currentSone} - * is {@code null} and {@code soneRequired} is {@code true}, {@code null} is - * returned and the notification is subsequently removed. Otherwise only - * posts that are posted by friend Sones of the given Sone are retained; all - * other posts are removed. + * Filters the posts of the given notification. * - * @param newPostNotification - * The new-post notification + * @param postNotification + * The post notification * @param currentSone * The current Sone, or {@code null} if not logged in - * @return The filtered new-post notification, or {@code null} if the - * notification should be removed + * @return The filtered post notification, or {@link Optional#absent()} if the notification should be removed */ @Nonnull - private Optional> filterNewPostNotification(@Nonnull ListNotification newPostNotification, - @Nonnull Sone currentSone) { - List newPosts = from(newPostNotification.getElements()).filter(postVisibilityFilter.isVisible(currentSone)).toList(); + private Optional> filterPostNotification(@Nonnull ListNotification postNotification, + @Nullable Sone currentSone) { + List newPosts = from(postNotification.getElements()).filter(postVisibilityFilter.isVisible(currentSone)).toList(); if (newPosts.isEmpty()) { return Optional.absent(); } - if (newPosts.size() == newPostNotification.getElements().size()) { - return Optional.of(newPostNotification); + if (newPosts.size() == postNotification.getElements().size()) { + return Optional.of(postNotification); } - ListNotification filteredNotification = new ListNotification(newPostNotification); + ListNotification filteredNotification = new ListNotification(postNotification); filteredNotification.setElements(newPosts); - filteredNotification.setLastUpdateTime(newPostNotification.getLastUpdatedTime()); + filteredNotification.setLastUpdateTime(postNotification.getLastUpdatedTime()); return Optional.of(filteredNotification); }